我有这样的代码
# two data frames
sf = data.frame(days = c('05-06', '05,08'), Frequency = c(0, 2))
normal = data.frame(days = c('05-06', '05,07'), Frequency = c(1, 3))
# plot
ggplot() +
geom_bar(aes(y = Frequency, x = days), data = normal,
stat="identity", colour = 'black') +
geom_bar(aes(y = Frequency, x = days), data = sf,
stat="identity", colour = 'red')
我想用红色和黑色添加图例,我尝试了one这是我问题最相关的解决方案,但它只显示了第一个条形图的图例。我怎么能有黑色和红色的条形图传奇?
注意:它不是一个数据帧,它们是两个独立的数据帧,具有不同的行数,因此我无法将它们合并在一起。所以我绘制了两个条形图。上面的代码填充了图表,我想要的是添加一个图例,显示第一个条形图是黑色,第二个是红色。
答案 0 :(得分:2)
与许多ggplot问题一样,您面临的问题源于数据格式不正确。您应该拥有一个数据框,其中包含days
,Frequency
和group
列。
在ggplot的美学组中设置颜色,然后指定手动色标以设置颜色和黑色。
library(ggplot2)
df = data.frame(days = c('05-06', '05,08', '05-06', '05,07'),
Frequency = c(0, 2, 1, 3),
group = c("sf", "sf", "normal", "normal"))
# plot
ggplot(df, aes(y = Frequency, x = days, fill = group)) +
geom_bar(stat="identity") +
scale_fill_manual(values = c("red", "black"))
我鼓励阅读ggplot参考指南的基础知识,以便更多地了解如何使用数据:http://ggplot2.tidyverse.org/reference/。此外,ggplot备忘单是一个有用的参考:https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf