2017-11-10 16 views
6

क्या इसे बिना किसी प्रारूप के साजिश को सहेजना संभव है?इसे बिना किसी दिखाए साजिश सहेजें

मैं powerpoint के रेखांकन नकल करने में सक्षम आसानी से, यह प्रतियां क्लिपबोर्ड भूखंड होने के लिए एक छोटे से ggplot हैक किया है, लेकिन एक उपकरण खिड़की खुलते और बंद तेजी से देख सकते हैं, यह थोड़ा अजीब है, मैं इस से बच सकते हैं?

मैं windows और rstudio का उपयोग कर रहा हूं।

प्रतिलिपि प्रस्तुत करने योग्य कोड:

library(ggplot) 

`-.gg` <- function(e1,e2){ 
    assertthat::assert_that(is.numeric(e2), 
          length(e2)<= 2) 
    if(identical(e2,0)) return(invisible(NULL)) 
    W <- 8 
    H <- 4.5 
    dev.new(width=W * head(e2,1), height=H * tail(e2,1),noRStudioGD =TRUE) 
    print(e1) 
    savePlot("clipboard", type="wmf") 
    dev.off() 
    e1 
} 

ggplot(data.frame(x=1:10,y=1:10),aes(x,y)) + geom_point() - 1 - 0 

संपादित करें:

मेरे कोड, और चुने हुए समाधान, के साथ काम कर मुद्दे हैं semi-transparency.It के ठीक समय के सबसे अधिक है, लेकिन अपवाद नहीं होगा कष्टप्रद। हो सकता है कि एक सामान्य समाधान का मार्ग tempfile के साथ इसे सहेजना होगा, फिर इसे उचित आर फ़ंक्शन के माध्यम से या system का उपयोग करके कमांड लाइन के साथ क्लिपबोर्ड में पढ़ें (शायद कुछ ऐसा जो फ़ाइल को अदृश्य और प्रतिलिपि खोल देगा)। win.metafile() डिवाइस का उपयोग करें:

उत्तर

3

यह विंडोज पर काम करता है करने में सक्षम था। यदि आप कोई फ़ाइल नाम नहीं देते हैं, तो यह क्लिपबोर्ड पर सहेजता है। तो आपका कार्य

library(ggplot2) 

`-.gg` <- function(e1,e2){ 
    assertthat::assert_that(is.numeric(e2), 
          length(e2)<= 2) 
    if(identical(e2,0)) return(invisible(NULL)) 
    W <- 8 
    H <- 4.5 
    win.metafile(width=W * head(e2,1), height=H * tail(e2,1)) 
    print(e1) 
    dev.off() 
    e1 
} 

ggplot(data.frame(x=1:10,y=1:10),aes(x,y)) + geom_point() - 1 - 0 
+0

बिल्कुल सही! बहुत बहुत धन्यवाद –

+0

मैं सच होने के लिए बहुत अच्छा था, 'ggplot (data.frame (x = 1: 10, y = 1: 10), एईएस (एक्स, वाई)) + geom_smooth() - 1 - 0' रिटर्न ' इस डिवाइस पर अर्द्ध पारदर्शिता समर्थित नहीं है। 'geom_smooth' पूरी तरह से काम नहीं करेगा, लेकिन ऐसा लगता है कि 'अल्फा' पैरामीटर समर्थित है। –

+0

बेहतर उदाहरण: 'ggplot (आईरिस, एईएस (सेपाल। लम्बाई, सेपाल। विथथ)) + geom_smooth() - 1 - 0' –

1

खिड़कियों और R 3.4.2 पर, का उपयोग कर Sys.sleep झपकी के बजाय साजिश को देखने और याद आती है

`-.gg` <- function(e1,e2){ 
    assertthat::assert_that(is.numeric(e2), 
         length(e2)<= 2) 
    if(identical(e2,0)) return(invisible(NULL)) 
    W <- 8 
    H <- 4.5 
    dev.new(width=W * head(e2,1), height=H * tail(e2,1),noRStudioGD =TRUE) 
    print(e1) 
    savePlot("clipboard", type="wmf") 
    Sys.sleep(3) ## 
    dev.off() 
    e1 
} 

ggplot(data.frame(x=1:10,y=1:10),aes(x,y)) + geom_point() - 1 - 0 
+1

यह एक अच्छा विचार है क्योंकि यह कम अजीब बनाता है, लेकिन मैं भी उत्सुक हूं अगर मैं वास्तव में इसे बिल्कुल नहीं दिखा सकता। –

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