如何使用facet_wrap或facet_grid刻面绘图?

如何使用facet_wrap或facet_grid刻面绘图?,r,ggplot2,R,Ggplot2,我有一个数据框架(称为“dat”),有4列(年、高收益率、美国债券、美国股票),我想创建一个刻面图,显示三种投资方法(高收益率、美国债券和美国股票)的投资价值在一年中如何变化。我能做什么 year high_yield us_bond us_stock 1 0 1000.000 1000.000 1000.000 2 1 1220.586 1281.926 1283.605 3 2 1450.444 1520.894 1215.798 4 3

我有一个数据框架(称为“dat”),有4列(年、高收益率、美国债券、美国股票),我想创建一个刻面图,显示三种投资方法(高收益率、美国债券和美国股票)的投资价值在一年中如何变化。我能做什么

   year high_yield  us_bond us_stock
1     0   1000.000 1000.000 1000.000
2     1   1220.586 1281.926 1283.605
3     2   1450.444 1520.894 1215.798
4     3   1692.547 1717.119 1745.844
5     4   1943.387 1986.865 2541.729
6     5   2208.077 2311.152 2144.041
7     6   2485.897 2462.264 2550.917
8     7   2777.211 2882.419 3264.006
9     8   3082.773 3081.522 2653.898
10    9   3392.857 3740.678 3421.683
11   10   3723.774 3916.913 3910.493


您可以使用下面的代码来实现这一点

library(data.table)

df=data.frame(year=seq(0,10,1), high_yield=c(1000.000, 1220.586, 1450.444, 1692.547, 1943.387, 2208.077, 2485.897, 2777.211, 3082.773,3392.857,3723.774),
              us_bond=c(1000.000, 1220.586, 1450.444, 1692.547, 1943.387, 2208.077, 2485.897, 2777.211, 3082.773, 3392.857, 3723.774),
              us_stock=c(1000.000, 1220.586, 1450.444, 1692.547, 1943.387, 2208.077, 2485.897, 2777.211, 3082.773, 3392.857, 3723.774))

df.m = melt(df, id.vars = c("year"),
             measure.vars = c("high_yield", "us_bond", "us_stock"))              

library(ggplot2)
bp <- ggplot(df.m, aes(x=year, y=value, group=variable)) + 
  geom_line(color = "steelblue",size = 1)

bp + facet_grid( .~ variable, scales='free') + 
geom_point(color="steelblue") + 
labs(y = "Value of investment", x = "Year")
库(data.table)
df=数据帧(年份=序列(0,10,1),高收益率=c(1000.0001220.5861450.4441692.5471943.3872208.07722485.8972777.2113082.7733392.8573723.774),
美国国债=c(1000.0001220.5861450.4441692.5471943.3872208.0772485.8972777.2113082.773392.8573723.774),
美国股票=c(1000.0001220.5861450.4441692.5471943.3872208.0772485.8972777.2113082.773392.8573723.774))
df.m=melt(df,id.vars=c(“年”),
measure.vars=c(“高收益率”、“美国债券”、“美国股票”))
图书馆(GG2)

bp到facet,您必须有一个列来指示当前在各个列中的组。要做到这一点,您需要长数据,因此请考虑将此宽数据转换为长数据(例如,
重塑
tidyr::gather
data.table::melt
)。