2013-01-14 37 views
6

क्या geg_line() द्वारा gagplot2 में चिकनी प्रस्तुत करने योग्य लाइनों में एकाधिक बिंदुओं में शामिल होने वाली जेग वाली लाइनों को सुधारने की उनकी कोई प्रक्रिया है?ggplot2 में jagged लाइन ग्राफ को कैसे सुधारें?

 lai.se <- structure(list(DOS = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("D1", "D2", "D3"), class = "factor"), 
    DAS = c(31L, 84L, 113L, 132L, 160L, 35L, 82L, 108L, 126L, 
    146L, 37L, 83L, 94L, 113L, 134L), N = c(24L, 24L, 24L, 24L, 
    24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L, 24L), LAI = c(1.5879167, 
    4.3241667, 3.70375, 2.9704167, 0.1879167, 1.7679167, 3.7670833, 
    3.4104167, 2.7879167, 0.195, 1.3179167, 3.5233333, 3.1604167, 
    2.45875, 0.2758333), sd = c(0.4276323, 0.32478644, 0.34151596, 
    0.3338638, 0.09868611, 0.18551876, 0.38212767, 0.31431747, 
    0.35024189, 0.08836682, 0.16378616, 0.29256982, 0.28257326, 
    0.44131535, 0.09536733), se = c(0.08729008, 0.06629675, 0.06971165, 
    0.06814966, 0.02014422, 0.03786886, 0.07800148, 0.06415978, 
    0.07149283, 0.0180378, 0.03343271, 0.05972057, 0.05768002, 
    0.09008312, 0.01946677), ci = c(0.18057328, 0.13714529, 0.14420954, 
    0.14097832, 0.04167149, 0.0783377, 0.16135836, 0.13272463, 
    0.14789418, 0.03731404, 0.06916083, 0.1235414, 0.11932022, 
    0.18635113, 0.04027009)), .Names = c("DOS", "DAS", "N", "LAI", 
"sd", "se", "ci"), class = "data.frame", row.names = c(NA, -15L 
)) 
    ggplot(lai.se, aes(x=DAS, y=LAI, colour=DOS)) + 
    geom_errorbar(aes(ymin=LAI-se, ymax=LAI+se), colour ="black", size =.5, width=1, position=position_dodge(.9)) + 
    geom_line() + 
    geom_point()+ theme_bw() 

लाइन्स का उपयोग कर इन कोड बहुत pixelated टेढ़े-मेढ़ी लाइनों थे बनाया। क्या "solid" लाइनों (ज़िग-ज़ैग दिखने वाला नहीं) प्लॉट करने के लिए उनका कोई तरीका है?

> sessionInfo() 
R version 2.14.2 (2012-02-29) 
Platform: i386-pc-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=English_India.1252 LC_CTYPE=English_India.1252 LC_MONETARY=English_India.1252 LC_NUMERIC=C     
[5] LC_TIME=English_India.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggplot2_0.9.2.1 

loaded via a namespace (and not attached): 
[1] colorspace_1.1-1 dichromat_1.2-4 digest_0.5.2  grid_2.14.2  gtable_0.1.1  labeling_0.1  
[7] MASS_7.3-17  memoise_0.1  munsell_0.4  plyr_1.7.1   proto_0.3-9.2  RColorBrewer_1.0-5 
[13] reshape2_1.2.1  scales_0.2.2  stringr_0.6.1  tools_2.14.2  
+0

क्या आपका मतलब है विरोधी aliased लाइनें:

आपकी छवियों को सुधारने के लिए और अधिक विचारों के लिए इस ब्लॉग पोस्ट देखें % 27s_line_algorithm –

+0

मैं @eznme से सहमत हूं कि आप संभावित रूप से एंटी-एलाइजिंग समस्याओं का जिक्र कर रहे हैं जो शायद उस डिवाइस से संबंधित हैं जो आप ग्राफ को प्रिंट कर रहे हैं, ggplot2 स्वयं नहीं। इसे हल करने से आपके प्लेटफॉर्म और सिस्टम कॉन्फ़िगरेशन पर निर्भर रहेगा, इसलिए मैंने 'sessionInfo()' के आउटपुट के लिए कहा था। – joran

+0

@joran मैंने sessionInfo() जोड़ा है। कृपया मेरी मदद करें। मैं RStudio (0.97.248) – Barun

उत्तर

4

मुझे लगता है कि आप एक लाइन को सुचारू बनाने की कोशिश कर रहे हैं। क्या यह आपके बाद के बॉल पार्क में है?

ggplot(lai.se, aes(x=DAS, y=LAI, colour=DOS)) + 
    geom_errorbar(aes(ymin=LAI-se, ymax=LAI+se), colour ="black", size =.5, width=1, position=position_dodge(.9)) + 
    geom_smooth() + 
    geom_point()+ theme_bw() 

enter image description here

+1

आपकी सहायता के लिए धन्यवाद। लेकिन मैंने कोशिश की है। आप यहां भी ध्यान दे सकते हैं कि बनाई गई रेखाएं जंजीर हैं। जो मैं खोज रहा था वह उच्च गुणवत्ता वाली रेखा ग्राफ है जो एमएस एक्सेल में बनाई गई है (पिक्सलेटेड नहीं)। – Barun

4

जैसे PDF या पोस्टस्क्रिप्ट के रूप में एक सदिश प्रारूप में संग्रहीत एक फ़ाइल, करने के लिए उत्पादन अपने ग्राफ, और उसके बाद ImageMagick या इसी तरह का उपयोग एक बिटमैप (PNG, JPEG, आदि करने के लिए कि वेक्टर छवि प्रस्तुत करने के लिए ।) उच्च संकल्प (150, 300 या यहाँ तक कि 600 dpi) पर:

$ convert myGraphAsVector.pdf -density 300 myGraphAs300DpiBitmap.png 

फ़ाइल आकार बड़ा हो जाएगा (और तेजी से बड़ा पाने के रूप में आप अंतिम उत्पाद के संकल्प में वृद्धि), लेकिन बिटमैप की jaggedness उच्च पिक्सेल पर जाने के लिए दिखाई देगा घनत्व।

4

मेरी टिप्पणी के जवाब में आप पुष्टि करते हैं कि आप anti-alias अपनी लाइनें (अपनी साजिश के वक्र को नहीं बदलना चाहते हैं)।

मुझे लगता है कि आर में करने के लिए एक ही रास्ता काहिरा उपयोग करने के लिए है और यहाँ कैसे है कि मंडली के साथ, मैं आशा है कि आप कि लाइनों के साथ यह करने के लिए अनुकूलित कर सकते हैं करने के लिए पर एक ट्यूटोरियल है:

http://www.r-bloggers.com/weekend-art-in-r-part-3/

3

जैसा कि अन्य ने उल्लेख किया है, पीडीएफ या एसवीजी जैसे वेक्टर-आधारित छवि प्रारूप जाने का सबसे अच्छा तरीका हो सकता है। यदि आप पीएनजी की तरह बिटमैप का उपयोग करना चाहते हैं, तो आप png() के res विकल्प के साथ अपनी छवि के संकल्प को बढ़ा सकते हैं।

png("myplot.png", width = 1800, height = 1800, res = 600)

यह 600 dpi पर 3 इंच की छवि से एक 3 इंच (वास्तविक दुनिया आयामों में) का उत्पादन करेगा। मेरे अनुभव में, अपेक्षाकृत सरल ग्राफ के लिए फ़ाइल का आकार अभी भी उचित था। इस ?: https://en.wikipedia.org/wiki/Xiaolin_Wu तरह

http://blog.revolutionanalytics.com/2009/01/10-tips-for-making-your-r-graphics-look-their-best.html