带有沿 x 轴的完整数据和子集的 ggplot
ggplot with full data and subset(s) along x-axis
我将在这里使用小提琴图作为示例,但问题扩展到许多其他 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")
我的问题是:有没有办法在同一个图中并排绘制完整数据和按因子子集?换句话说,对于虹膜数据,我可以制作一个沿 x 轴同时具有 "full data" 和 "setosa" 的小提琴图吗?
这将能够比较完整数据集和该数据集的一个子集的分布。如果这不可能,也欢迎任何关于更好的可视化方法的建议:)
感谢任何想法!
使用:
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())
给出:
我将在这里使用小提琴图作为示例,但问题扩展到许多其他 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")
我的问题是:有没有办法在同一个图中并排绘制完整数据和按因子子集?换句话说,对于虹膜数据,我可以制作一个沿 x 轴同时具有 "full data" 和 "setosa" 的小提琴图吗?
这将能够比较完整数据集和该数据集的一个子集的分布。如果这不可能,也欢迎任何关于更好的可视化方法的建议:)
感谢任何想法!
使用:
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())
给出: