ggplot

2013-01-18 26 views
7

का उपयोग करते समय डेटा फ़ाइलों में समान क्रम रखें, मैं बॉक्सप्लॉट बनाने के लिए नीचे दिए गए संलग्न डेटा का उपयोग कर रहा हूं। प्लॉट फ़ाइल:: /// C:/उपयोगकर्ताओं/iouraich/दस्तावेज़ggplot

# Distribution of EV for all regions under the BASE scenario 

evBASE.f <- subset(ccwelfrsts, tradlib =="BASE") 
p <- ggplot(data = evBASE.f, aes(factor(region), ev)) 
p + geom_boxplot() + 
    theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 16)) + 
    theme(axis.text.y = element_text(colour = 'black', size = 16)) 

यह है कि एक साजिश लग रहा है reproduces: Datalink https://www.dropbox.com/s/dt1nxnkhq90nea4/GTAP_Sims.csv

अब तक, मैं इस कोड है कि मैं का उपयोग कर रहा है /ggplot_Results.htm

जो मैं यहां देख रहा हूं वह है कि साजिश में एक्स-अक्ष सीएसवी फ़ाइल में शीर्षलेख "क्षेत्र" के क्रम से मेल खाती है।

क्या ggplot के भीतर कोई विकल्प है जो इसके लिए नियंत्रण करने की अनुमति देता है?

धन्यवाद एक बहुत

+0

यहां कुछ समस्याएं हैं। सबसे पहले, हम नहीं देख सकते कि आप किस प्रकार की साजिश का लक्ष्य रख रहे हैं क्योंकि आपके द्वारा प्रदान किया गया लिंक नेट पर कुछ नहीं, आपके स्थानीय सिस्टम पर एक फाइल है। दूसरा, जब आपने डेटा के लिए एक लिंक प्रदान किया है (धन्यवाद) डेटा को पढ़ने वाले कोड को शामिल करना एक अच्छा विचार है ताकि हम आपके चरणों को बिल्कुल पुन: पेश कर सकें। तीसरा, हां, 'ggplot' शायद आप जो चाहते हैं वह कर सकते हैं। – SlowLearner

+0

@SlowLearner: सलाह के टुकड़े के लिए thx। अगली बार जब मैं मदद मांगूं तो मैं इसे ध्यान में रखूंगा :) – iouraich

उत्तर

8

मूल रूप से आप सिर्फ region <- factor(region,levels=unique(region)) जरूरत है क्रम में स्तरों जिसमें वे डेटा में दिखाई देते हैं निर्दिष्ट करने के लिए।

एक पूर्ण समाधान डेटा आपके द्वारा दी गई पर आधारित

ccwelfrsts <- read.csv("GTAP_Sims.csv") 
## unmangle data 
ccwelfrsts[5:8] <- sapply(ccwelfrsts[5:8],as.numeric) 
evBASE.f <- droplevels(subset(ccwelfrsts, tradlib =="BASE")) 
## reorder region levels 
evBASE.f <- transform(evBASE.f,region=factor(region,levels=unique(region))) 
library(ggplot2) 
theme_set(theme_bw()) 
p <- ggplot(data = evBASE.f, aes(region, ev)) 
p + geom_boxplot() + 
    theme(axis.text.x = element_text(colour = 'black', angle = 90, size = 16)) + 
    theme(axis.text.y = element_text(colour = 'black', size = 16))+ 
    xlab("") 

आप लेबल पढ़ने में आसान बनाने के लिए ग्राफ़ के उन्मुखीकरण स्विचिंग (coord_flip के माध्यम से या स्पष्ट रूप से x और y अक्ष मैपिंग स्विचन द्वारा) पर विचार हो सकता , हालांकि y अक्ष पर संख्यात्मक प्रतिक्रिया वाला लेआउट अधिकांश दर्शकों के लिए अधिक परिचित है।

+0

Thx बहुत कुछ। यह प्रत्येक बार मैन्युअल रूप से एईएस() के अंदर ऑर्डर निर्दिष्ट करने के बजाय आसान बनाता है। – iouraich