如何在R中没有“填充”的情况下创建条形图?

问题描述

我有一个数据框,其中包含如下数据

     Monsoon                 F_Monsoon                         avg_Min_temp_year
  1 Post-Monsoon Autumn    avg_Min_temp                                 21.4
  2 Pre-Monsoon Hot Summer avg_Min_temp                                 22.5
  3 Rainy                  avg_Min_temp                                 25.6
  4 Winter                 avg_Min_temp                                 13.9
  5 Post-Monsoon Autumn    avg_Min_temp_monsoon                         20.7
  6 Pre-Monsoon Hot Summer avg_Min_temp_monsoon                         22.1
  ...
  ...

我正在尝试创建没有任何颜色(仅黑白)的情节

我的代码在下面给出

plot <- ggplot(plot_final_df,aes(Monsoon,avg_Min_temp_year))+
 geom_bar(stat = "identity",position = "dodge")+
 theme_bw()+
 facet_wrap(~Monsoon)+
 theme(panel.grid = element_blank())+
 xlab("Monsoon")+
 ylab("Avg Min Temp")+
 ggtitle("Avg Min Temp vs Monsoon")

我的情节中每个one bar显示monsoon,但必须显示2 bar (one for avg_Min_temp and for avg_Min_temp_monsoon)

当我在fill内使用aes(fill = F_Monsoon)属性时,它用颜色显示2 bar for each monsoon,但是我需要black and white

任何建议都是可以的。

解决方法

由于您已经对Monsoon进行了构面,并且希望每个构面包含两个小节(F_Monsoon中的两个级别分别包含两个小节,因此您应该将F_Monsoon作为x轴:

ggplot(plot_final_df,aes(F_Monsoon,avg_Min_temp_year)) +
 geom_bar(stat = "identity",position = "dodge") +
 facet_wrap(~Monsoon) +
 theme_bw() +
 theme(panel.grid = element_blank()) +
 xlab("Monsoon") +
 ylab("Avg Min Temp") +
 ggtitle("Avg Min Temp vs Monsoon")

enter image description here

请注意,我必须在示例数据中添加额外的两行,才能使其正常工作:

数据

plot_final_df <- structure(list(Monsoon = c("Post-Monsoon Autumn","Pre-Monsoon Hot Summer","Rainy","Winter","Post-Monsoon Autumn","Winter"),F_Monsoon = c("avg_Min_temp","avg_Min_temp","avg_Min_temp_monsoon","avg_Min_temp_monsoon"),avg_Min_temp_year = c(21.4,22.5,25.6,13.9,20.7,22.1,24.6,12.9)),class = "data.frame",row.names = c("1","2","3","4","5","6","7","8"))