0

我有一个如下所示的数据集:

年 AL AK AZ AR CA CO
1993 135 153 113 157 718 516
1994 218 154 184 185 845 465
1995 482 846 683 682 863 863

我想随着时间的推移绘制折线图,​​所以 x 轴是年份,y 轴是计数,每条线都是一个状态。如何让年份显示在 x 轴上?

我一直在运行这个:

data <- read.csv("data.csv", header=T)
plot(data$AL, type="l")
par(new=T)
plot(data$AK, type="l")
.....

除了我上面的内容外,x 轴是“索引”,但我希望它是年份。

4

2 回答 2

3

将您的数据视为时间序列,解决方案非常简单:

df <- read.table(text="Year    AL    AK    AZ    AR    CA    CO
1993    135   153   113   157   718   516
1994    218   154   184   185   845   465
1995    482   846   683   682   863   863", header=T)

time.series <- ts(df[, -1], start=1993, end=1995)

plot(time.series, main="Toy example")

产生

在此处输入图像描述

如果你想要一个面板,那么:

plot(time.series, main="Toy example", plot.type="single", col=1:6)

在此处输入图像描述

您可能想阅读?legend以了解如何将图例放在情节上。

于 2013-10-25T17:08:35.507 回答
2

您也可以尝试将数据直接读取到zoo对象中,然后可以绘制该对象。

library(zoo)

z1 <- read.zoo(text = "Year    AL    AK    AZ    AR    CA    CO
1993    135   153   113   157   718   516
1994    218   154   184   185   845   465
1995    482   846   683   682   863   863", header = TRUE)

plot(z1, xlab = "Year")
 

在此处输入图像描述

如果要在同一面板中绘制所有线,请使用plot(z1, plot.type = "single", col = 1:6).

于 2013-10-25T20:23:22.027 回答