我需要用矩阵元素的所有组合绘制许多图形。
我有三列。我想绘制名为A的元素的时间序列对应于W1,然后命名为B的元素的时间序列对应于W1。与W2相同;实际上我的矩阵是巨大的,但这个想法应该适用。
特别是,我想学习如何告诉R将W1的所有元素组合在一起,用名称元素将它们分开。
此外,绘制所有这些图形的最有效方法是什么(在下面的例子中,我需要4个图表)?
name W1 W2
A 123 24
A 754 7245
A 475 257
A 623 2457
A 525 27
A 256 72
A 352 725
B 257 572
B 572 577
B 75 257
B 27 257
B 247 7522
B 257 724
答案 0 :(得分:0)
我使用ggplot2
包进行绘图,使用reshape2
包将广泛数据转换为长数据。
# get x values for your plots
df$x = ave(df$W1, df$name, FUN = seq_along)
# conver wide data to long
df_long = reshape2::melt(df, id.vars = c("name", "x"))
library(ggplot2)
# plot
ggplot(df_long, aes(x = x, y = value)) + geom_line() +
facet_grid(name ~ variable)
使用此数据:
df = read.table(text = "name W1 W2
A 123 24
A 754 7245
A 475 257
A 623 2457
A 525 27
A 256 72
A 352 725
B 257 572
B 572 577
B 75 257
B 27 257
B 247 7522
B 257 724", header= T)