简体   繁体   English

如何在geom_bar ggplot2中添加第二个栏

[英]how to add a second bar in geom_bar ggplot2

I have a data.frame mentioned in this post below. 我在下面的这篇文章中提到了一个data.frame。 I would like to fill a geom_bar ggplot, and add a second column with position = "dodge" keeping the same fill. 我想填充geom_bar ggplot,并添加第二列,其位置=“ dodge”保持相同的填充。

Is it posible? 有可能吗?

Thanks 谢谢

Data: 数据:

e11 <- data.frame(stringsAsFactors=FALSE,
        Data = c("NSY", "NSY", "NSY", "NSY", "NSY", "NSY", "NSY", "NSY", "NSY",
                 "NSY", "NSY", "NSY", "IEA", "IEA", "IEA", "IEA", "IEA", "IEA",
                 "IEA", "IEA", "IEA", "IEA", "IEA", "IEA"),
   pollutant = c("CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO",
                 "CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO", "CO",
                 "CO", "CO", "CO", "CO"),
         veh = c("Bus", "Bus", "LCV", "LCV", "MC", "MC", "PC", "PC", "Trucks",
                 "Trucks", "Taxi", "Taxi", "Bus", "Bus", "LCV", "LCV", "MC",
                 "MC", "PC", "PC", "Trucks", "Trucks", "Taxi", "Taxi"),
    province = c("Anshan", "Baicheng", "Anshan", "Baicheng", "Anshan",
                 "Baicheng", "Anshan", "Baicheng", "Anshan", "Baicheng",
                 "Anshan", "Baicheng", "Anshan", "Baicheng", "Anshan", "Baicheng",
                 "Anshan", "Baicheng", "Anshan", "Baicheng", "Anshan", "Baicheng",
                 "Anshan", "Baicheng"),
          V1 = c(2056951311, 821731458, 6172501, 2603243, 86352447, 103963364,
                 31727831557, 18939503839, 6479654273, 2969730580, 649016656,
                 398757325, 1532636252, 594877413, 3490977, 1481795, 61479188,
                 74017395, 22588836597, 13484103276, 3426409302, 1573954393,
                 462071641, 283897878)
)

First plot 第一情节

ggplot(e11,
       aes(x = province, y = V1,
           fill = veh)) +
  geom_bar(stat = "identity") +
  # facet_wrap(~Data)+
  theme(axis.text.x = element_text(angle = 90, hjust = 1, colour = "black"),
        legend.key.size = unit(1,"line"),
        text = element_text(size=20),
        legend.position = "bottom",
        axis.text.y = element_text(colour = "black"))

在此处输入图片说明

Second plot 第二情节

ggplot(e11,
       aes(x = province, y = V1)) +
  geom_bar(stat = "identity", position = "dodge", aes(fill = Data)) +
  # facet_wrap(~Data)
  theme(axis.text.x = element_text(angle = 90, hjust = 1, colour = "black"),
        legend.key.size = unit(1,"line"),
        text = element_text(size=20),
        legend.position = "bottom",
        axis.text.y = element_text(colour = "black"))

在此处输入图片说明

I`m looking for something like this: Third Plot 我正在寻找这样的东西: 第三情节

e11$Veh <- paste(e11$province, e11$Data)

ggplot(e11,
       aes(x = Veh, 
           y = V1,
           fill = veh)) +
  geom_bar(stat = "identity") +
  # facet_wrap(~Data)
  theme(axis.text.x = element_text(angle = 90, hjust = 1, colour = "black"),
        legend.key.size = unit(1,"line"),
        text = element_text(size=20),
        legend.position = "bottom",
        axis.text.y = element_text(colour = "black"))

在此处输入图片说明 PD: As imgur is censored in China, Im using GitHub links to show the pictures to Chinese and other users where imgur is blocked PD:由于imgur在中国受到审查,Im使用GitHub链接向禁止imgur的中国人和其他用户显示图片

I think this is near what I what and might help other to evolve 我认为这接近我的想法,可能会帮助其他人发展

plot 情节

ggplot(e11,
       aes(x = Data, y = V1,
           fill = veh)) +
  geom_bar(stat = "identity") +
  labs(x = NULL, y = NULL)+
  facet_wrap(~province, nrow = 1)+
  theme_bw()+
  theme(axis.text.x = element_text(hjust = 1, angle = 90, colour = "black"),
        legend.key.size = unit(1,"line"),
        text = element_text(size=22),
        legend.position = "bottom",
        axis.text.y = element_text(colour = "black"),
        strip.text.x = element_text(size = 18,  angle = 90),
        panel.spacing = unit(0, "lines"))

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM