我有以下示例。
require(ggplot2)
# Example Data
x <- data.frame(var1=rnorm(800,0,1),
var2=rnorm(800,0,1),
var3=rnorm(800,0,1),
type=factor(rep(c("x", "y"), length.out=800)),
set=factor(rep(c("A","B","C","D"), each=200))
)
现在,我想绘制这些线的(细)平行坐标图,每个变量值都有点。我想在变量值的这些平行坐标图上叠加一个箱形图(每种方法的不同颜色)。最重要的是,我想面对组和类型,比如使用set~type。这可以用ggplot2吗?
有什么建议吗?谢谢!
答案 0 :(得分:2)
您需要先以长格式输入数据。我没有点积分,因为图表已经足够混乱,但你可以通过添加geom_point
来实现。
require(tidyr)
x$id <- 1:nrow(x)
x2 <- gather(x, var, value, var1:var3)
ggplot(x2, aes(var, value)) +
geom_line(aes(group = id), size = 0.05, alpha = 0.3) +
geom_boxplot(aes(fill = var), alpha = 0.5) +
facet_grid(set ~ type) +
theme_bw()
用小提琴替换箱形图也很酷。
ggplot(x2, aes(var, value)) +
geom_line(aes(group = id), size = 0.05, alpha = 0.3) +
geom_violin(aes(fill = var), col = NA, alpha = 0.6) +
facet_grid(set ~ type) +
theme_bw()