SORU
29 Kasım 2011, Salı


R ggplot : olaylar ile Zaman serisi

R/ggplot acemi değilim. Sürekli değişken bir zaman serisi geom_line bir arsa oluşturmak ve bir katman olaylar meydana eklemek istiyorum. Sürekli değişken ve zaman damgaları bir veri saklanır.çerçeve, olaylar ve zaman damgaları başka bir veri saklanır.çerçeve.

Yapardımgerçektenyapmak gibi. finance.google.com grafikleri gibi bir şey. O, zaman serisi fiyat ve stok "" haber-olayları göstermek için bayraklar vardır. Aslında Maliye şeyler komplo değil, ama grafik türüne benzer. Günlük dosyası veri görselleştirme arsa için çalışıyorum. Burada ne demek istediğimi bir örnek...

google chart with events

Tavsiye (?), Ayrı bir veri kullanmak istiyorum.her bir katman için kare (sürekli değişken gözlem için, olaylar için başka bir).

Biraz deneme yanılma sonra şunu da bulunur. Burada, ben kullanarak örnek veri setleri ile ggplot. "ekonomi" içeren bazı zaman serisi verileri isterim arsa ve "başkanlık" içeren bir kaç olaylar (cumhurbaşkanlığı seçimleri).

library(ggplot2)
data(presidential)
data(economics)

presidential <- presidential[-(1:3),]
yrng <- range(economics$unemploy)
ymin <- yrng[1]
ymax <- yrng[1]   0.1*(yrng[2]-yrng[1])

p2 <- ggplot()
p2 <- p2   geom_line(mapping=aes(x=date, y=unemploy), data=economics , size=3, alpha=0.5) 
p2 <- p2   scale_x_date("time")    scale_y_continuous(name="unemployed [1000's]")
p2 <- p2   geom_segment(mapping=aes(x=start,y=ymin, xend=start, yend=ymax, colour=name), data=presidential, size=2, alpha=0.5)
p2 <- p2   geom_point(mapping=aes(x=start,y=ymax, colour=name ), data=presidential, size=3) 
p2 <- p2   geom_text(mapping=aes(x=start, y=ymax, label=name, angle=20, hjust=-0.1, vjust=0.1),size=6, data=presidential)
p2

my attempt

Soru:

  • Bu çok seyrek olaylar için TAMAM, ama eğer onlara bir günlük dosyasında olduğu gibi sık sık () bir küme ise orada işler karışır. Düzgünce olayları kısa bir zaman içinde meydana gelen bir sürü görüntülemek için kullanabileceğim bir teknikle aralığı var mı? Position_jitter, ama beni gerçekten bu kadar zor olduğunu düşünüyordum. google grafikler yığınları bu olay "bayrakları eğer onlara bir şey olursa" üst üste.

  • Aslında olay aynı ölçekte bir veri yapışmasını sürekli ölçüm görüntü olarak sevmiyorum. Bir facet_grid koymayı tercih ederim. Sorun tüm yönleriyle aynı veri kaynaklı olmalı.çerçeve (eğer bu doğruysa emin değil). Yani bu da ideal değil gibi görünüyor (ya da belki de sadece yeniden şekillendirmek kullanarak önlemek için çalışıyorum.

CEVAP
29 Kasım 2011, Salı


Şimdi de herkes gibi ggplot severim, ama eğer Google yazın grafikler Finans yapmak istiyorsanız, Neden sadece Google grafik API ile değil?!? Bu bayılacaksın:

install.packages("googleVis")
library(googleVis)

dates <- seq(as.Date("2011/1/1"), as.Date("2011/12/31"), "days")
happiness <- rnorm(365)^ 2
happiness[333:365] <- happiness[333:365]  * 3   20
Title <- NA
Annotation <- NA
df <- data.frame(dates, happiness, Title, Annotation)
df$Title[333] <- "Discovers Google Viz"
df$Annotation[333] <- "Google Viz API interface by Markus Gesmann causes acute increases in happiness."

### Everything above here is just for making up data ### 
## from here down is the actual graphics bits        ###
AnnoTimeLine  <- gvisAnnotatedTimeLine(df, datevar="dates",
                                       numvar="happiness", 
                                       titlevar="Title", annotationvar="Annotation",
                                       options=list(displayAnnotations=TRUE,
                                                    legendPosition='newRow',
                                                    width=600, height=300)
                                       )
# Display chart
plot(AnnoTimeLine) 
# Create Google Gadget
cat(createGoogleGadget(AnnoTimeLine), file="annotimeline.xml")

ve bu harika grafik üretir:

enter image description here

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009