ggplot

2014-11-06 20 views
5

में किंवदंती पाठ को संरेखित करें मुझे बाईं ओर किंवदंती पाठ को संरेखित करने में कठिनाई है।ggplot

library(ggplot2) 
library(reshape2) 
o3<- rnorm(1827, 50, 10) 
NO2<- rnorm(1827, 35, 7) 
NOx<- rnorm(1827, 45, 10) 
pm25<- rnorm(1827, 15, 4) 
date<-seq(as.Date('2000-01-01'),as.Date('2004-12-31'),by = 1) 
df<-data.frame(date,o3,NO2,NOx,pm25) 
meltdf <- melt(df,id="date") 

इस कोड के साथ संरेखण बाईं

ggplot(meltdf, aes(x = date, y = value, colour =variable)) + geom_smooth() + stat_smooth(method = "gam") 
हालांकि साथ alignemt निम्नलिखित केंद्र के लिए है

लिए स्वचालित रूप से है।

ggplot(meltdf, aes(x = date, y = value, colour =variable)) + 
     geom_smooth() + stat_smooth(method = "gam") + 
     scale_color_discrete(name="Pollutant" ,labels = c(expression(O[3]), 
           expression(NO[2]), 
           expression(NO[x]), 
           expression(PM[2.5]))) 

मैं अंतिम लिपि के साथ बाएं संरेखण कैसे प्राप्त कर सकता हूं?

उत्तर

5

आप theme() में legend.text.align निर्दिष्ट करना होगा:

ggplot(meltdf, aes(x = date, y = value, colour =variable)) + 
geom_smooth() + 
stat_smooth(method = "gam") + 
scale_color_discrete(name="Pollutant", 
    labels = c(expression(O[3]), 
       expression(NO[2]), 
       expression(NO[x]), 
       expression(PM[2.5]))) + 
theme(legend.text.align = 0) 

वैकल्पिक रूप से, expression के बजाय bquote का उपयोग करके देखें, और डिफ़ॉल्ट छोड़ दिया संरेखण जगह लेता है। मुझे नहीं पता कि सिर्फ expression का उपयोग क्यों संरेखण को सही में बदलता है ...

ggplot(meltdf, aes(x = date, y = value, colour =variable)) + 
geom_smooth() + 
stat_smooth(method = "gam") + 
scale_color_discrete(name="Pollutant", 
    labels = c(bquote(O[3]), 
       bquote(NO[2]), 
       bquote(NO[x]), 
       bquote(PM[2.5]))) 
+0

आपके उत्तर देने के लिए धन्यवाद। मुझे लगता है कि डिफॉल्ट को बाएं संरेखित किया जाना चाहिए क्योंकि पहले कोड ने स्वचालित रूप से बाएं संरेखित किंवदंती बनाई थी। दूसरी लिपि का परिणाम केंद्र/दाएं संरेखित आउटपुट में क्यों हुआ? मुझे किस विषय में "थीम (legend.text.align = 0)" जोड़ने की आवश्यकता है? – Meso

+1

वैसे संक्षिप्त जवाब तब भी होगा जब टेक्स्ट बाईं ओर गठबंधन नहीं होता है :) मुझे नहीं पता कि इस मामले में संरेखण बाईं ओर नहीं है, जो डिफ़ॉल्ट है। आपके स्क्रिप्ट परिणामों को सही-संरेखित आउटपुट में अभिव्यक्ति के उपयोग के साथ करना है, यदि आप bquote का उपयोग करते हैं तो डिफ़ॉल्ट बाएं संरेखण का उपयोग किया जाता है -see अद्यतन – konvas