我使用ggplot2制作了这张图:
我希望将“InterésReal”时间序列改为geom_bar()
而不是一行。我尝试使用以下代码单独绘制我的每个系列:
ggOjb=ggplot(base)+geom_line(aes(x=periodo,y=tasa))+
geom_line(aes(x=periodo,y=inflacion))+
geom_bar(aes(x=periodo,y=real2),stat="identity",alpha=.7)+
geom_hline(yintercept=0,linetype=2,size=1)
我得到了这个:
这几乎是我想要的。但我还想保留这些指南。因此,我想知道如何将变量映射到几何类型。
提前谢谢!我希望我很清楚。
答案 0 :(得分:2)
您可以将数据从宽到长重新整形,然后在每个geom中使用不同的数据框。
library(tidyr)
df <- data.frame(Time = 1:25, A = rnorm(25), B = rnorm(25), C = rnorm(25)*1.5)
df %>%
gather("Series", "Value", - Time) -> df
ggplot() +
geom_bar(data = df %>% filter(Series == "C"), aes(x=Time, y=Value, fill = "SeriesA"), stat="identity") +
geom_line(data = df %>% filter(Series == "A"), aes(x=Time, y=Value, col = "SeriesB")) +
geom_line(data = df %>% filter(Series == "B"), aes(x=Time, y=Value, col = "SeriesC")) +
geom_hline(yintercept=0,linetype=2,size=1) +
scale_colour_manual(name = "Series A and B", values = c("SeriesB" = "blue", "SeriesC" = "green")) +
scale_fill_manual(name = "Series C", values = c("SeriesA" = "grey"))