【问题标题】:ggplot with full data and subset(s) along x-axis沿 x 轴具有完整数据和子集的 ggplot
【发布时间】:2016-02-17 17:14:44
【问题描述】:

我将在这里使用小提琴图作为示例,但问题延伸到许多其他 ggplot 类型。

我知道如何将我的数据沿 x 轴按一个因子进行子集化:

ggplot(iris, aes(x = Species, y = Sepal.Length)) +
  geom_violin() +
  geom_point(position = "jitter")

而且我知道如何只绘制完整的数据集:

ggplot(iris, aes(x = 1, y = Sepal.Length)) +
  geom_violin() +
  geom_point(position = "jitter")

我的问题是:有没有办法在同一个图中并排绘制完整数据和子集?换句话说,对于 iris 数据,我可以制作一个沿 x 轴同时具有“完整数据”和“setosa”的小提琴图吗?

这可以比较完整数据集和该数据集子集的分布。如果这是不可能的,任何关于更好的可视化方法的建议也将受到欢迎:)

感谢您的任何想法!

【问题讨论】:

    标签: r ggplot2 data-visualization


    【解决方案1】:

    使用:

    ggplot(iris, aes(x = "All", y = Sepal.Length)) +
      geom_violin() +
      geom_point(aes(color="All"), position = "jitter") +
      geom_violin(data=iris, aes(x = Species, y = Sepal.Length)) +
      geom_point(data=iris, aes(x = Species, y = Sepal.Length, color = Species), 
                 position = "jitter") +
      scale_color_manual(values = c("black","#F8766D","#00BA38","#619CFF")) +
      theme_minimal(base_size = 16) +
      theme(axis.title.x = element_blank(), legend.title = element_blank())
    

    给予:

    【讨论】:

    • 感谢,很好的回答,感谢您强调输入“全部”作为 x 轴的能力!
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 2020-03-20
    相关资源
    最近更新 更多