2013-10-25 3 views
0

У меня есть набор данных, который выглядит следующим образом:Как построить линейный график в R с годами как ось x и ось y, как считать?

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

Я хочу построить графики линии с течением времени, так что ось х лет, у оси является счетчиком и каждая строка будет состояние. Как я могу получить год для отображения по оси х?

Я работает следующим образом:

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

За исключением того, что я выше, то ось х «Index», но я хочу, чтобы это было год.

+1

'? Matplot' может быть полезна. Попробуйте 'matplot (x = df [, 1], y = df [, -1], type =" l ")'. Также прочитайте '? Par' и поиграйте, чтобы найти решение. –

+0

узкий ответ на ваш вопрос заключается в том, что вы должны использовать 'plot (data $ Year, data $ AL)' и т. Д. –

ответ

2

Побалуйте ваши данные в виде временных рядов и решение приходит очень легко:

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

который производит

enter image description here

Если вы хотите один панель, затем:

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

enter image description here

Возможно, вы захотите прочитать ?legend, чтобы узнать, как поставить легенды на сюжеты.

+0

Спасибо. Хм. Я могу построить одиночный, но многопанель дает мне проблемы - ошибка в plotts (x = x, y = y ... ... не может отображать более 10 серий как «несколько». Реальный набор данных имеет 50 состояний + DC и начало 1993 года - конец 2009 года. Что происходит? –

+0

Нет ничего плохого, вы не можете построить более 10 серий с использованием нескольких панелей, вот что говорит сообщение об ошибке. –

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

enter image description here

Если вы хотите построить все строки в одной и той же панели, используйте plot(z1, plot.type = "single", col = 1:6).

Смежные вопросы