R 我可以从双向表在同一绘图上绘制多行吗
我有下表,它给出了每年(行)按月(列)发生地震的次数 然后,以下两个命令为我提供了两个不同的图,第一个用于1973年时间序列,第二个用于2010年时间序列:R 我可以从双向表在同一绘图上绘制多行吗,r,plot,lines,R,Plot,Lines,我有下表,它给出了每年(行)按月(列)发生地震的次数 然后,以下两个命令为我提供了两个不同的图,第一个用于1973年时间序列,第二个用于2010年时间序列: > dim(tmp) [1] 38 12 > plot(tmp[1,], type="l") > plot(tmp[38,], type="l") 我想将这两个时间序列合并显示在同一个图上。是否有办法将上表中的行绘制在同一个绘图上,同时按年份标识每个时间序列(行标签)?作为一般规则,我尽量不使用表格进行绘图,即使这样读取
> dim(tmp)
[1] 38 12
> plot(tmp[1,], type="l")
> plot(tmp[38,], type="l")
我想将这两个时间序列合并显示在同一个图上。是否有办法将上表中的行绘制在同一个绘图上,同时按年份标识每个时间序列(行标签)?作为一般规则,我尽量不使用表格进行绘图,即使这样读取数据对人来说是有意义的
library(ggplot2)
ggplot(data.frame(tmp)) +
geom_line(aes(x = Var2, y = Freq, group = Var1, col = Var1))
ggplot2
库非常适合这种组打印练习,不过需要一些输入才能习惯
调用
Var1
和Var2
(它们是在我将表
强制为data.frame
时创建的)可能不是一个好主意。您可以通过先聚合地震
数据帧,然后调用该数据帧上的绘图来避免这种情况。matplot
适用于这种情况:
反转表中的行和列:
tmp <- table(quakes$mon,quakes$year)
# 1973 1974 1975 1976 1977 1978
#0 388 386 435 677 453 499
#1 453 384 374 478 355 449
#2 451 385 397 474 508 730
#3 508 388 439 430 519 533
#etc
tmp你是说像library(ggplot2);ggplot(数据帧(tmp))+geom_线(aes(x=Var2,y=Freq,group=Var1,col=Var1))
?
tmp <- table(quakes$mon,quakes$year)
# 1973 1974 1975 1976 1977 1978
#0 388 386 435 677 453 499
#1 453 384 374 478 355 449
#2 451 385 397 474 508 730
#3 508 388 439 430 519 533
#etc
vars <- c(1,6)
matplot(tmp[,vars], type="l", lty=1)
legend("topright", colnames(tmp)[vars], lty=1, col=seq_along(vars))