在ggplot2中使用刻面的平行坐标图上叠加彩色的箱线图

时间:2015-12-12 05:40:21

标签: r ggplot2

我有以下示例。

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吗?

有什么建议吗?谢谢!

1 个答案:

答案 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()

enter image description here

或者也许是小提琴

用小提琴替换箱形图也很酷。

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()

enter image description here