如何在 R 中创建没有 'fill' 的条形图?
How can I create a bar plot without 'fill' in 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)
当我在 aes(fill = F_Monsoon)
中使用 fill
属性时,它显示 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")
请注意,我必须向您的示例数据添加两行才能使其正常工作:
数据
plot_final_df <- structure(list(Monsoon = c("Post-Monsoon Autumn",
"Pre-Monsoon Hot Summer",
"Rainy", "Winter", "Post-Monsoon Autumn", "Pre-Monsoon Hot Summer",
"Rainy", "Winter"), F_Monsoon = c("avg_Min_temp", "avg_Min_temp",
"avg_Min_temp", "avg_Min_temp", "avg_Min_temp_monsoon", "avg_Min_temp_monsoon",
"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"))
我有一个包含如下数据的数据框
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)
当我在 aes(fill = F_Monsoon)
中使用 fill
属性时,它显示 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")
请注意,我必须向您的示例数据添加两行才能使其正常工作:
数据
plot_final_df <- structure(list(Monsoon = c("Post-Monsoon Autumn",
"Pre-Monsoon Hot Summer",
"Rainy", "Winter", "Post-Monsoon Autumn", "Pre-Monsoon Hot Summer",
"Rainy", "Winter"), F_Monsoon = c("avg_Min_temp", "avg_Min_temp",
"avg_Min_temp", "avg_Min_temp", "avg_Min_temp_monsoon", "avg_Min_temp_monsoon",
"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"))