我正在尝试创建一个堆叠条形图,其中包含三个分类变量和一个离散变量,其中一个分类变量是另一个“嵌套”的。 “嵌套”分类变量将通过不同的纹理(斜线,点等)进行可视化,而“嵌套”的分类变量将通过颜色进行可视化。结果将看起来像这里的图片: https://istack.dev59.com/vVm9q.webp
在R中,我遇到了两个主要挑战:1)将一个分类变量嵌套在另一个分类变量中,2)用纹理表示类别。最接近“嵌套”一个分类变量的解决方案是下面的脚本。但是,我希望使用ggplot通过纹理区分“性别”类别,而不是轮廓颜色。我也希望将离散变量放在x轴上,而不是y轴上。这个问题表明“gridSVG”包可能有用,但我不确定如何将其与ggplot结合使用。
# This sample dataset is taken from https://stackoverflow.com/questions/31173931/point-plot-with-se-for-3-categorical-1-continuous-variable-in-r:
library(ggplot2)
library(tibble)
df <- tibble(
mea = rep(c("PO_P", "Melaniz"), each = 6),
tre = rep(c("a", "a", "b", "b", "c", "c"), 2),
sex = rep(c("Male", "Female"), 6),
len = c(10.66154, 10.58077, 10.29200, 10.60000, 10.28519, 10.65185,
11.47857, 11.71538, 11.70833, 11.50000, 11.62143, 11.89231)
)
ggplot(df, aes(x = factor(mea), y = len, color = sex, fill = tre)) +
geom_bar(stat = "identity", size = 2)
由reprex package (v0.3.0)于2019年9月4日创建
facet_wrap
,那么可以像这个例子中一样将sex
编码为alpha
级别,例如这里。 - Arienrhod