ggplot2中的条形图,带有有序条形图和手动指定颜色

时间:2017-05-16 11:53:33

标签: r ggplot2 bar-chart

我想用ggplot2生成一个简单的条形图,条形图由y值和手动定义的颜色排序。这是我试过的:

 Place place= (Place) getIntent().getSerializableExtra("PLACE");

The colours are wrongly ordered.

问题是:颜色排序错误(黑色,蓝色和黄色,而不是df <- data.frame(c("a", "b", "c"), c(2, 3, 1)) colnames(df) <- c("shop", "revenue") ggplot(data = df, aes(x = reorder(shop, revenue), y = revenue, fill = shop)) + geom_bar(stat = "identity") + scale_fill_manual(values = c("blue", "yellow", "black")) + theme_minimal() 中所述的蓝色,黄色和黑色)。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用scale_fill_manual,您可以为数据中的级别指定颜色。 同时,您在reorder(shop, revenue)的定义中使用aes,它按从左到右的顺序对数据进行排序。颜色的第三个也是最后一个定义&#34;蓝色&#34;被分配到 c ,现在位于左侧,因为它是最小的。

你可以花时间来规避这个:

ggplot(data = df, aes(x = reorder(shop, revenue), y = revenue, fill = shop)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("yellow", "black", "blue")) +  # CHANGED
  theme_minimal()

或者@JeroenBoeye建议:

ggplot(data = df, aes(x = reorder(shop, revenue), y = revenue, fill = shop)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("c" = "blue", "a" = "yellow", "b" = "black")) + # Jeroen Boeye's suggestion
  theme_minimal()

请告诉我这是否可以解决您的问题。