R 我可以从双向表在同一绘图上绘制多行吗

R 我可以从双向表在同一绘图上绘制多行吗,r,plot,lines,R,Plot,Lines,我有下表,它给出了每年(行)按月(列)发生地震的次数 然后,以下两个命令为我提供了两个不同的图,第一个用于1973年时间序列,第二个用于2010年时间序列: > dim(tmp) [1] 38 12 > plot(tmp[1,], type="l") > plot(tmp[38,], type="l") 我想将这两个时间序列合并显示在同一个图上。是否有办法将上表中的行绘制在同一个绘图上,同时按年份标识每个时间序列(行标签)?作为一般规则,我尽量不使用表格进行绘图,即使这样读取

我有下表,它给出了每年(行)按月(列)发生地震的次数

然后,以下两个命令为我提供了两个不同的图,第一个用于1973年时间序列,第二个用于2010年时间序列:

> 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))