Несколько или несколько выходных графиков временных рядов из одного фрейма данных

Привет,

Я боролся с этой проблемой некоторое время, и любой, кто может мне помочь, я был бы очень признателен.

Во-первых, я работаю с данными временных рядов в одном фрейме данных, содержащем несколько временных рядов. Слишком много для вывода по отдельности на графики. Я пытался передать qplot() через ddply(), однако r говорит мне, что qplot не является функцией и поэтому не будет работать.

структура моих данных такая...

goodlocs <- 
 Loc    Year    dir
Artesia 1983    1490
Artesia 1984    1575
Artesia 1986    1567
Artesia 1987    1630
Artesia 1990    1680
Bogota  1983    1525
Bogota  1984    1610
Bogota  1985    1602
Bogota  1986    1665
Bogota  1990    1715
Carlsbad    1983    1560
Carlsbad    1985    1645
Carlsbad    1986    1637
Carlsbad    1987    1700
Carlsbad    1990    1750
Carlsbad    1992    1595
Datil   1987    1680
Datil   1990    1672
Datil   1991    1735
Datil   1992    1785

У меня около 250 местоположений (локаций), и я хотел бы иметь возможность просматривать данные каждой станции на графике, подобном следующему, чтобы я мог визуально проверять все свои данные.

Artesia <- goodlocs[goodlocs$Loc == "Artesia",]

qplot(YEAR, dir, data = Artesia, geom = c("point", "line"), xlab = "Year", 
  ylab = "DIR", main = "Artesia DIR Over Record Period") + 
  geom_smooth(method=lm)

Я понимаю, что Par() должен помочь в этом, но я не могу понять это на всю жизнь. Любая помощь приветствуется.

Спасибо,

-Зия

редактировать -

как указал Арун, я пытаюсь сохранить .pdf 250 различных графиков моих goodlocs df, разделенных Loc, с точечной и линейной геометрией для просмотра данных....

Я также попытался передать ddply моего df через qplot в качестве данных, но это тоже не сработало, я действительно не ожидал этого, но мне пришлось попробовать.


person c0ba1t    schedule 15.04.2013    source источник
comment
Не совсем понятно, какой сюжет вы хотите. Один график с линейными/точечными графиками для всех локов (или) отдельный график для каждого лока (или) отдельный файл для каждого графика?   -  person Arun    schedule 16.04.2013
comment
Арун, я пытаюсь построить отдельный график для каждого места с точечной и линейной геометрией.   -  person c0ba1t    schedule 16.04.2013
comment
... и сохранить их все в один файл - это то, к чему я стремлюсь... еще раз спасибо..   -  person c0ba1t    schedule 16.04.2013
comment
Мне кажется, что вам, вероятно, нужно сделать это в цикле for. Я не совсем уверен, что вам нужно, но обратите внимание, что par(), вероятно, не поможет вам здесь, потому что у вас есть 250 различных графиков, поэтому, если вы попытаетесь уместить все в один сеанс построения, это, вероятно, будет не очень ясно. .   -  person daikonradish    schedule 16.04.2013


Ответы (1)


Как насчет этого?

require(ggplot2)
require(plyr)
require(gridExtra)
pl <- dlply(df, .(Loc), function(dat) {
    ggplot(data = dat, aes(x = Year, y = dir)) + geom_line() + 
    geom_point() + xlab("x-label") + ylab("y-label") + 
    geom_smooth(method = "lm")
})

ml <- do.call(marrangeGrob, c(pl, list(nrow = 2, ncol = 2)))
ggsave("my_plots.pdf", ml, height = 7, width = 13, units = "in")

Идея: сначала разделите данные на Loc и создайте график для каждого подмножества. Часть разделения выполняется с помощью функции plyr dlply, которая в основном принимает data.frame в качестве входных данных и предоставляет list в качестве выходных данных. Элемент графика хранится в каждом элементе списка, соответствующем подмножеству. Затем мы используем функцию marrangeGrob пакета gridExtra для организации нескольких графиков (которая также имеет очень полезные аргументы nrow и ncol для установки аргумента). Затем вы можете сохранить его, используя ggsave из ggplot2.

Я оставлю вас для любых дополнительных настроек, которые могут вам потребоваться.

person Arun    schedule 15.04.2013
comment
Я продолжаю получать эту ошибку... Ошибка в grid.Call.graphics(L_unsetviewport, as.integer(n)) : Не удается открыть окно просмотра верхнего уровня (вывод сетки и графики смешанный?) - person c0ba1t; 16.04.2013
comment
у вас установлен пакет gridExtra? - person Arun; 16.04.2013
comment
У меня все заработало без ошибок, но выходной pdf не читается ни foxit, ни adobe..... - person c0ba1t; 16.04.2013
comment
Он отлично работает для меня. Я не могу сказать, что у тебя не так. - person Arun; 16.04.2013
comment
... Я установил gridExtra, буду продолжать работать... еще раз спасибо за вашу помощь. Моды SE: я опубликую ответ, когда решу его. - person c0ba1t; 16.04.2013
comment
Я не устанавливал для своей сетки соответствующие размеры, и когда я это сделал, мне нужно было использовать limitize=FALSE в команде ggsave(). Спасибо еще раз за помощь. Ваше здоровье. - person c0ba1t; 16.04.2013