ggplot 2 - geom_bar - 表示2个因子变量,如fill =和color =

时间:2018-04-23 23:09:07

标签: r ggplot2 colors

我正在尝试使用geom_bar,我想使用颜色来表示两个不同的变量(这些因素) 我想使用Color = Breakfast or Lunch and fill = Restaurant。 然而,我最终得到了相似的颜色,因为它们只是每个因素的两个层次。

enter image description here

任何人都可以帮我设置内部和外部部分的其他颜色,并使轮廓更粗?

ggplot(aes(x=Item, y= `Sugars (g)`, fill = Restaurant, color =Breakfast_lunch)) + geom_col()

谢谢!

1 个答案:

答案 0 :(得分:0)

因此,您希望将条形的填充颜色(fill美学)与一个变量Restaurant和大纲/笔触颜色(colour或{{ 1}}审美)与另一个color绑定?在这种情况下,您只想更改每种美学使用的实际颜色(因为它们具有相同的默认值)。

正如@Jack Brookes建议的那样,您可以使用scale_fill_manual and scale_colour_manual来更改这些内容。您可以为Breakfast_lunch参数提供命名向量:名称是变量的可能值,值是您希望它们显示为的颜色。例如:

values

(那些颜色很可怕,所以也许选择更好的颜色:P)

您提供给ggplot(mydata, aes(x = Item, y = `Sugars (g)`, fill = Restaurant, color = Breakfast_lunch)) + geom_col() + scale_fill_manual(values = c("Burger King" = "red", "McDonalds" = "blue")) + scale_colour_manual(values = c("Breakfast" = "green", "Lunch" = "black")) 的颜色实际上不必命名:如果您不提供名称(数据中的值),ggplot2将按照遇到的顺序应用颜色在您的数据集中。所以如果你只是关心不同的颜色,你就不需要强调那一点。

另请注意,正如@neilfws所做的那样,您的原始values调用在开始时缺少ggplot参数(对您的数据框)。这非常重要!