【问题标题】:overlay colored boxplots on parallel coordinate plots with faceting in ggplot2在 ggplot2 中使用刻面在平行坐标图上叠加彩色箱线图
【发布时间】:2015-12-12 05:40:20
【问题描述】:

我有下面的例子。

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

有什么建议吗?谢谢!

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您需要先将数据放入长格式。我没有加分,因为图表已经够杂乱了,但您可以通过添加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()
    

    【讨论】:

    • 谢谢!如何更改线条颜色以及箱线图中线条的宽度?是否可以使箱线图中的框更薄? Violinplot 看起来很酷。
    • 好的,得到线条的颜色:需要将 I("orange") 作为颜色添加到 geom_line。仍在寻找如何使箱线图中的方框中的线条变细。
    • 箱线图的线条通过使用(R 语法)lwd 变得更细。
    • 是的,看来您已经弄清楚了。 ggplot(x2, aes(var, value)) + geom_line(aes(group = id), size = 0.05, alpha = 0.3, col = 'orange') + geom_boxplot(aes(fill = var), alpha = 0.5, lwd = 0.1) + facet_grid(set ~ type) + theme_bw()
    • 再次感谢!顺便说一句,aes() 中的 group=id 有什么作用?
    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多