Code
# library(scatterplot3d)
library(car)
library(rgl)
library(haven)
library(dplyr)
# library(scatterplot3d)
library(car)
library(rgl)
library(haven)
library(dplyr)
<-
simulated_multilevel_data read_dta("https://github.com/agrogan1/multilevel-thinking/raw/refs/heads/main/simulate-and-analyze-multilevel-data/simulated_multilevel_data.dta")
<- simulated_multilevel_data %>%
simulated_multilevel_data filter(country < 10)
$country <- factor(simulated_multilevel_data$country) simulated_multilevel_data
clear3d()
scatter3d(simulated_multilevel_data$outcome ~
$warmth +
simulated_multilevel_data$physical_punishment,
simulated_multilevel_datagroups = simulated_multilevel_data$country,
surface.col = 1:30,
surface = TRUE,
xlab="Parental Warmth",
zlab = "Physical Punishment",
ylab = "Outcome")
text3d(x=0, y=1, z=0,
"Three Dimensional Scatterplot / Spaghetti Plot",
cex = 2.0)
rglwidget()