2012-07-13 5 views
5

पर्यावरण: 7 विन हिमाचल प्रदेश, आर v2.15.1महीने-वर्ष बार ग्राफ़ प्लॉट पहलू और साल भर भरा; चार प्रारूप में तिथि के रूप में डेटा इनपुट के साथ

क्या मैं करने के लिए चाहते हैं: साथ

  • प्लॉट y (अंकीय) बनाम एक्स (तारीख)
  • लेबल महीने साल संक्षिप्त रूप, हल कर मोन + साल, खड़ी साल से भरा
  • रंग गठबंधन las2
  • पहलू ग्रिड साल से

मैंने इस मंच में विभिन्न धागे पढ़ने के बाद विभिन्न दृष्टिकोणों का प्रयास किया है, लेकिन मुझे जो चाहिए वह प्राप्त करने में असमर्थ। मदद चाहिए। नमूना डेटा और परिणाम संलग्न करना।

MySample डाटा

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) 

एक्स है तारीख mm-dd-yy प्रारूप TZ में (चरित्र): आईएसटी (कोलकाता/एशिया) डेटा प्रति माह केवल एकल y मूल्य जिनमें से आरंभ तिथि पर है डाटा फ्रेम करने के लिए महीने के

Convert

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

लोड आवश्यक पुस्तकालयों

require(lubridate) 
require(ggplot2) 

MySample बेस प्लॉट

1) प्लॉट एक्स y बनाम

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

मुझे आधार भूखंड दिया परिणाम

2) प्लॉट एक्स y बनाम +

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

भरने = साल मुझे भर दिया लेकिन 2010,2010.5,2011,2011.5,2012

के साथ 5 भरने के वर्षों

मैंने अलग-अलग दृष्टिकोणों की कोशिश की है लेकिन एक त्रुटि या किसी अन्य में चल रहा है।

3) प्लॉट एक्स बनाम y + भरने = साल + facet_grid (वर्ष)

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

प्राप्त करें: layout_base करने में त्रुटि (डेटा, कॉलम, ड्रॉप = बूंद): कम से कम एक परत सभी चर शामिल होना चाहिए scale_labels.continuous करने में त्रुटि (पैमाने, प्रमुख): Facetting

4) प्लॉट एक्स y बनाम + = साल + facet_grid (वर्ष) + लेबल महीने (abbr)

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

प्राप्त भरने के लिए इस्तेमाल किया ब्रेक्स तथा लेबल अलग-अलग लंबाई

मैं अटक गया हूं और आगे बढ़ने में सहायता की आवश्यकता है। निम्न आवश्यकताओं को संबोधित करने के लिए समाधान की आवश्यकता है:

  1. 3 भरने साल केवल - 2010,2011,2012
  2. xlabels -% ख% y प्रारूप; महीने के अनुक्रम पर क्रमबद्ध; las2 उचित पहलू ग्रिड में केवल उस वर्ष के xlabels और सलाखों के साथ तैनात (ऊर्ध्वाधर)
  3. साल से facet_grid

उत्तर

1

अपने 3 अंक का जवाब करने के लिए:

  1. उपयोग scale_fill_gradient (टूटता = अद्वितीय (MySample $ वर्ष))
  2. लुब्रिडेट के बजाय मानक अंतर्निहित दिनांक प्रणाली का उपयोग करें। आप ggplot2 में date_format के साथ प्रारूप निर्दिष्ट कर सकते हैं।
  3. उपयोग: + facet_grid (। ~ साल, मापता = "मुक्त")

निम्नलिखित कोड यह करना होगा:

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

धन्यवाद एक टन, संभोग! काम करता है! मेरे लिए भी उपयोगी सीखना! – user1506686

संबंधित मुद्दे