2011-08-24 7 views
7

मैं जावा से ggplot2 प्लॉट जेनरेट करने के लिए जेआरआई का उपयोग कर रहा हूं। वर्तमान में मुझे डिस्क पर भूखंड लिखना है। मैं फ़ाइलों के माध्यम से बिना यह कैसे कर सकता हूं, यानी बस स्मृति में भूखंडों को प्रस्तुत करना?आर में, फ़ाइल के बजाए मेमोरी बफर में कैसे प्लॉट करें?

मैंने टेक्स्ट कनेक्शन पर साजिश करने के लिए काहिरा पैकेज का उपयोग करने की कोशिश की, लेकिन यह "आर कनेक्शन पैच" के बिना काम नहीं करता है, जिसके बाद कुछ गूगलिंग प्राचीन इतिहास बन जाते हैं।

+0

AFAIK, यह अभी भी संभव नहीं है। यह एक ऐसी सुविधा है जिसे आवधिक रूप से अनुरोध किया जाता है, हालांकि मुझे विश्वास है कि इसे आर के कनेक्शन कोड का पर्याप्त पुनर्विक्रय करने की आवश्यकता है, इसलिए यह अब तक नहीं किया गया है। –

+0

हां वास्तव में, आर कनेक्शन प्लॉट इतिहास है (मैंने इसे लिखा है)। हालांकि, मैंने इस साल के उपयोग से कुछ रोचक रिपोर्टें सुनी हैं कि कोई कनेक्शन कनेक्शन इंटरफ़ेस के लिए एक छोटे से खोलने की कोशिश कर सकता है और छेड़छाड़ कर सकता है। – Jeff

+1

इसके अलावा, एक काहिरा डिवाइस से कच्चे छवि डेटा प्राप्त करने के लिए एक अनियंत्रित तरीका है। यह सिर्फ इतना है कि किसी को इसके लिए एक कनवर्टर लिखना होगा, चाहे वह पीएनजी, जेपीईजी, टिफ इत्यादि हो। आपको सोर्स कोड पढ़ना होगा, लेकिन kfor पैकेज में rimge.net – Jeff

उत्तर

10

अधिकतर https://stat.ethz.ch/pipermail/r-devel/2010-August/058253.html से।

library(Cairo) 
library(png) 
library(ggplot2) 

Cairo(file='/dev/null') 

qplot(rnorm(5000)) # your plot 

# hidden stuff in Cairo 
i = Cairo:::.image(dev.cur()) 
r = Cairo:::.ptr.to.raw(i$ref, 0, i$width * i$height * 4) 
dim(r) = c(4, i$width, i$height) # RGBA planes 
# have to swap the red & blue components for some reason 
r[c(1,3),,] = r[c(3,1),,] 
# now use the png library 
p = writePNG(r, raw()) # raw PNG bytes 

[अद्यतन:। जेआरआई raws संभाल कर सकते हैं, तो आप सिर्फ REngine कपोल-कल्पना और नहीं जेआरआई लोगों उपयोग करने की आवश्यकता]

+0

यांग, यह शानदार है! मुझे नहीं पता था कि साइमन ने ऐसा पैकेज लिखा था! जवाब के लिए धन्यवाद। – Jeff

+0

अच्छा काम। क्या आपको पता है कि इस विधि के बराबर पीडीएफ है यांग? – geotheory

+0

@gottheory कृपया एक प्रश्न पूछें और मैं इस समाधान को पोस्ट करूंगा https://www.andrewheiss.com/blog/2016/12/08/save-base-graphics-as-pseudo-objects-in-r/ दुर्भाग्य से ' पीएनजी (एनयूएलएल) 'काम नहीं करता है। – Hedgehog

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