我想用ggplot2
绘制一个马赛克图,并手动选择颜色,即为y轴上的每个类别(A,B,C,D,E,F)选择颜色。目前,我只能使用scale_fill_brewer()
命令在x轴(X,Y,Z)上选择每个类别的颜色。
bd <- data.frame(x = c(120,5,15,5,20,100, 400,15,50,80,45,410, 250,15,75,35,40,250),
y = rep(c("A", "B", "C", "D", "E", "F"), 3),
z = c(rep("X",6),rep("Y",6),rep("Z",6)))
bd$weight = bd$x/sum(bd$x)
ggplot(bd) +
geom_mosaic(aes(x = product(y, z),
fill = z, weight = weight), offset = 0.015) +
scale_fill_brewer(palette=2) +
#scale_color_brewer(palette=3) +
theme_mosaic()
输出:
我想在graphs provided in this answer中找到类似的东西。这似乎很简单,但我似乎找不到答案。有人能帮忙吗
2条答案
按热度按时间ukxgm1gy1#
如果你想通过
y
轴类别来着色,你必须将这个变量Map到fill
上,即做fill = y
:5lhxktic2#
既然你在你的OP中提到你对手动设置填充颜色感兴趣,这里有一个方法来做。在@stefan answer中,你只需要将
scale_fill_brewer(palette=2)
行替换为以下内容:您可以在这里查阅
ggplot2
中的一些预定义颜色名称:ggplot colors。