【问题标题】:Different colors in bar charts with ggplots2ggplot2条形图中的不同颜色
【发布时间】:2018-06-30 01:19:59
【问题描述】:

我有一个数据框,其中包含 15 家不同银行的两个独立月份的最小值。

我想要比较每家银行的最小值的条形图。我希望每个银行实现两个条形图,因为有两个最小值,每个条形图具有相同的颜色,但每个银行具有不同的颜色。

这样,如果 bank1 将自己标识为蓝色,则条形将为蓝色,如果 bank1 标识为绿色,则条形将均为绿色。

我尝试了以下代码,结果是这样。

library(ggplot2)

bank <- paste0("bank", c(1:15))


month1 <- c(-0.0750,-0.0350,-0.0250,0.0025,-0.0325,-0.0175,-0.0575,0.0025,-0.0775,-0.0050,-0.0275,-0.0550,-0.3700,-0.0475,-0.0100)


month2 <- c(-0.0775,0.0100,0.0075,-0.0225,0.0075,-0.0075,-0.0125,-0.0825,-0.0150,0.0050,-0.0025,-0.0750,-0.0050,-0.0750,0.0025)


values <- data.frame(bank, month1, month2)
values_gather <- gather(data = values, key = "month", value = "value", -1) 


ggplot(values_gather, aes( x = bank, y = value,   fill = bank  )) +
  geom_bar(stat = "identity", position = "dodge") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

然后我尝试了这个,这不是我想要的,但没有围绕条的那些不受欢迎的颜色。

ggplot(values_gather, aes( x = bank, y = value,   fill = bank, color = month)) +
  geom_bar(stat = "identity", position = "dodge") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

那么我如何才能使条形图的每个最小值都有一个条形,两个条形的颜色相同,而每个银行的颜色不同?

【问题讨论】:

  • 条是用填充而不是颜色着色的——在您的第一次通话中,您在aes 中使用了fill = bank。所以你需要scale_fill_*,其中*是“离散”、“手动”等。

标签: r ggplot2 bar-chart


【解决方案1】:

这样的?

[编辑] 小节之间有空格。

values_gather %>%
  ggplot(aes( x = bank, y = value, fill = bank, group = month )) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 1)) +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1), legend.position = "null")

附:你可以做到,但我想知道这张图是否可读?当您将两个条形图一起绘制时,它会带来额外的信息吗?也许通过geom_errorbar 或者甚至更好——通过geom_boxplot 显示数据的一些可变性更好?

【讨论】:

  • 是的!但是您如何设法在对应于同一家银行的条形之间留出一点空间?它们看起来有点杂乱。
【解决方案2】:

在 ggplot 美学中使用“组”。

ggplot(values_gather, aes(x = bank, y = value,   fill = bank, group = month)) +
  geom_bar(stat = "identity", position = "dodge") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    相关资源
    最近更新 更多