2012-07-13 16 views
5

Çevre: Win 7 HP R v2.15.1 ben almak isteyen neAy-Yıl çubuk grafiği grafiği, yıl boyunca yüzdendi ve dolduruldu; Char formatında tarih olarak veri girişi ile

: x (tarih) vs

  • Plot y (sayısal)
  • etiket ay-yıl kısaltması, kriteri mon yıl ve dikey yıl dolu
  • renk hizalanmış las2 yıl
  • faset ızgara

Bu forumda farklı konuları okuduktan sonra farklı yaklaşımları denedim, ancak ihtiyacım olanı alamadım. Yardıma ihtiyacım var. Örnek veri ve sonuçların eklenmesi.

mysample Veri

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 ay-gün-yy biçiminde tz tarih (karakter): İST (Calcutta/Asya) verileri başlangıç ​​tarihinde olan ayda sadece tek y değerine sahip Veri Frame ay

dönüştürme

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

yük gerekli kütüphaneleri

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

bana baz arsa verdi x
require(lubridate) 
require(ggplot2) 

mySample Taban Plot

1) Plot

2) Arsa x y vs sonuçlanan +

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

yıl = doldurmak bana dolgular verdi ama 2010 ile birlikte 5 dolum yılı geçirdi.2010.5,2011,2011,5,2012

Farklı yaklaşımları denedim, ancak bir hataya veya başka bir şeye dönüşüyorum. x y v

3) Konu + dolgu = yıl + facet_grid (yıl)

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

Al: layout_base hata (veriler, sütunlar, damla = damla): en az bir kat, tüm değişkenler içermelidir scale_labels.continuous Hata (ölçek, majör): x = yıl + facet_grid (yıllık) + etiketleri ay (kısaltması)

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

alın y vs + doldurmak

4) Plot facetting için kullanılan Sonları ve etiketler farklı uzunluklardadır. Sıkışmış durumdayım ve ilerlemek için yardıma ihtiyacım var. aşağıdaki koşulları yerine getirmek üzere çözüm Need:

  1. 3 dolgu yılda sadece - 2010,2011,2012
  2. xlabels -% b% y formatında; ay-yıl dizisine göre sıralanır; las2

cevap

1

senin 3 puan cevaplamak için uygun faset-ızgarasında sadece o yılın xlabels ve barları ile yıl (dikey)

  • facet_grid konumlandırılmış:

    1. kullanım scale_fill_gradient (sonları = benzersiz (mySample Yılda bir), lubridate yerine standart yerleşik tarih sistemini kullanın. biçimi ggplot2 içinde date_format ile belirtebilirsiniz.
    2. kullanım: + facet_grid Aşağıdaki kod yapacak

    (. ~ Yıl = "özgür" ölçekler):

    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

    Teşekkür bir ton, dostum! Eserleri! benim için de yararlı bir öğrenme! – user1506686

    İlgili konular