2012-07-13 15 views
5

Środowisko Win 7 HP, R v2.15.1Miesiąc-rok wykres słupkowy fasetowany i wypełniony rok; z wprowadzania danych, jak data w formacie char

Co chciałbym dostać się do:

  • Plot y (numeryczny) vs x (data) z
  • etykiety miesiąc-rok skrót, sortowane mon + lat, las2 pionowo
  • kolorów wypełnionych przez rok
  • aspekt-grid przez rok

Próbowałem różnych metod po przeczytaniu różnych wątków na tym forum, ale nie mogłem dostać tego, czego potrzebuję. Potrzebuję pomocy. Dołączanie przykładowych danych i wyników.

mójprzykład danych

x <- c("04-01-10","05-01-10","06-01-10","07-01-10","08-01-10","09-01-10","10-01-10","11-01-10","12-01-10","01-01-11","02-01-11","03-01-11","04-01-11","05-01-11","06-01-11","07-01-11","08-01-11","09-01-11","10-01-11","11-01-11","12-01-11","01-01-12","02-01-12","03-01-12","04-01-12","05-01-12","06-01-12") 
y <- c(120,210,130,160,190,210,80,70,110,120,140,160,130,200,110,180,210,200,90,60,100,100,120,170,100,180,120) 

x jest data (znak) w formacie dd-mm-yy TZ: IST (Kalkuta/Asia) dane ma tylko jeden y wartość miesięcznie, które jest w dniu rozpoczęcia miesiąc

konwertować do ramki danych

MySample <- data.frame(x) ## convert to dataframe 
MySample$y <- y 

obciążenia wymagane biblioteki

require(lubridate) 
require(ggplot2) 

mójprzykład bazowa działki

1) działki x vs y

ggplot(MySample, aes(MySample$x, MySample$y)) + 
     geom_bar(y=MySample$y,stat="identity") 

Dał mi bazie wykresu wynika

2) Lokalizacja x vs y + napełnienia = lat

ggplot(MySample, aes(MySample$x, MySample$y, fill=year(MySample$x))) + 
     geom_bar(y=MySample$y,stat="identity") 

dał mi wypełnienia, ale mają 5 lat wypełnienia z 2010,2010.5,2011,2011.5,2012

Próbowałem różnych podejść, ale działa na jeden lub inny błąd.

3) Lokalizacja x vs y + napełnienia = lat + facet_grid (lata)

ggplot(MySample, aes(x, y, fill=year(x))) + 
     geom_bar(y=MySample$y,stat="identity") + 
     facet_grid(. ~ year(MySample$x)) 

otrzymujemy: Błąd layout_base (dane cols, kropla = spadek) Co najmniej jedna warstwa może zawierać wszystkie zmienne używanych do szlifowania

Plot x 4) vs y + napełnienia = lat + facet_grid (lata) + etykiety-miesięcznych (skrót)

ggplot(MySample, aes(x, y, fill=year(x))) + 
     geom_bar(y=MySample$y,stat="identity") + 
     scale_x_date(labels=month(MySample$x,label=TRUE,abbr=TRUE)) 

otrzymujemy: błąd scale_labels.continuous (skala, główny): Przerwy i etykiety mają różne długości:

Utknąłem i potrzebuję pomocy, aby iść do przodu. potrzebują rozwiązań do rozwiązania następujące wymagania: Lata

  1. 3 tylko wypełnienia - 2010,2011,2012
  2. xlabels - Format% b% Y; posortowane według kolejności miesięcy; las2 umieszczone (w pionie)
  3. facet_grid rok z tylko, że tegorocznych xlabels i barów w odpowiednim fasetowanie-siatki

Odpowiedz

1

Aby odpowiedzieć na to 3 punkty:

  1. użytkowania scale_fill_gradient (przerwy = unikatowe (mójprzykład $ year))
  2. używać standardowego wbudowanego systemu daty zamiast lubridate. możesz określić format w ggplot2 za pomocą date_format.
  3. Zastosowanie: + facet_grid (. ~ Lat, waga = "wolne")

Poniższy kod będzie to zrobić:

MySample$date <- as.Date(MySample$x, "%m-%d-%y") 
MySample$year <- year(MySample$date) 

ggplot(MySample, aes(date, y, fill = year)) + 
    geom_bar(y=y,stat="identity") + 
    facet_grid(. ~ year, scales = "free") + 
    scale_x_date(labels = date_format("%b/%y")) + 
    scale_fill_gradient(breaks=unique(MySample$year)) 
+0

Dzięki ton, kolego! Prace! przydatna nauka dla mnie też! – user1506686

Powiązane problemy