У меня есть несколько объектов временных рядов, охватывающих разные периоды времени, с пробелами в данных и с разной частотой (некоторые ежечасные данные, некоторые 15-минутные, некоторые 1-минутные).
Я пытаюсь сопоставить разные объекты временных рядов друг с другом на диаграммах рассеяния xy, чтобы увидеть, есть ли очевидные корреляции, и сделать «красивые» графики с помощью ggplot для презентации. Очевидно, что можно отображать/сравнивать данные только там, где они существуют для x
и y
одновременно.
Я могу получить быструю графику с базовой графикой, но хотелось бы чего-то более презентабельного.
например, это работает в базе R:
require(zoo)
x <- zoo(sort(rnorm(10)),as.POSIXct("2013/07/26")+1:10)
y <- zoo(sort(rnorm(30)),as.POSIXct("2013/07/26")+(1:30)/2)
plot(x,y)
и попытка сделать то же самое с ggplot терпит неудачу:
data <- rbind(melt(fortify(x),id="Index"),melt(fortify(y),id="Index"))
ggplot(data,aes(x=x,y=y))+geom_point()
Don't know how to automatically pick scale for object of type zoo. Defaulting to continuous
Don't know how to automatically pick scale for object of type zoo. Defaulting to continuous
Error: Aesthetics must either be length one, or the same length as the dataProblems:x
предложения по улучшению названий/описаний приветствуются
aes(x=Index,y=value)
? x и y не являются переменными в вашем новом фрейме данных, поэтому я не уверен, почему вы пытаетесь сопоставить их с эстетикой. - person joran   schedule 26.07.2013b <- cast(data,Index~variable,mean); ggplot(b,aes(x=x,y=y))+geom_point()
, но я бы предпочел использовать «идентификацию» вместо «среднее» в качестве функции агрегирования... но по какой-то причине это не удается - person RyanStochastic   schedule 26.07.2013