2

我正在尝试更改 geom_col 图的图例形状。默认情况下,图例是方形的,我想更改为圆形(或三角形或其他任何东西)。由于颜色由 控制fill,我假设覆盖此参数应该可以解决问题:

library(ggplot2)
data("Titanic")
Titanic <- as.data.frame(Titanic)

ggplot(data = Titanic, aes(x = Class, y = Freq, fill = Survived)) + geom_col() +
   guides(fill = guide_legend(override.aes = list(shape = 16))) 

我也试图更具体

ggplot(data = Titanic, aes(x = Class, y = Freq, fill = Survived)) + geom_col() +
  scale_shape_manual(values = c("No" = 16, "Yes" = 17)) 

但传说不变。有什么建议吗?

(我确实看过相关的问题Changing shape in legend ggplot2但它似乎也不起作用。我想是因为geom_point没有使用?)

4

1 回答 1

2

这个文档记录得很少,但是 layer 函数的一个参数是key_glyph可以指定将哪种东西放入图例中的参数。如果您有条形图并且想要点状图例,则可以覆盖默认值。随后,您可以覆盖填充图例中的美学以满足您的需要。一定要选择一个有填充参数的形状。

library(ggplot2)
data("Titanic")
Titanic <- as.data.frame(Titanic)

ggplot(Titanic, aes(x = Class, y = Freq, fill = Survived)) + 
  geom_col(key_glyph = draw_key_point) +
  guides(fill = guide_legend(override.aes = list(shape = 21, size = 5))) 

reprex 包(v0.3.0)于 2020-08-25 创建

于 2020-08-25T10:11:05.440 回答