खाली भूखंड कैसे आकर्षित करें?


106

मुझे एक खाली प्लॉट बनाने की जरूरत है। यह सबसे अच्छा मैं के साथ आ सकता है।

plot(0, xaxt = 'n', yaxt = 'n', bty = 'n', pch = '', ylab = '', xlab = '')

कोई सरल उपाय?

पुनश्च: पूरी तरह से खाली, कोई धुरी आदि नहीं।

जवाबों:


107

कैसे कुछ के बारे में:

plot.new()

@ अदम, मुझे नहीं पता कि तुम "आर उचित" से क्या मतलब है।
जोशुआ उलरिक

@ जोशुआ, सॉरी प्लॉट.न्यू () ठीक काम करता है, x11 () की कोई आवश्यकता नहीं है। मैंने कहा आर उचित है क्योंकि मुझे लगा कि x11 () आपके समाधान का हिस्सा था, लेकिन यह इसके बिना काम करता है।
एडम एसओ

1
@ एडाम x11()एक नया डिवाइस खोलने के लिए एक क्रॉस-प्लेटफॉर्म आर कमांड है। यदि आपके पास एक उपकरण खुला है और कॉल है plot.new(), तो वर्तमान डिवाइस को साफ़ कर दिया जाएगा।
जोशुआ उलरिक

1
वहाँ के लिए एक फायदा है x11()से अधिक dev.new()? मेरी वृत्ति स्थानीय डिफॉल्ट डिवाइस जो है, उसे समायोजित करने के लिए उत्तरार्द्ध के साथ जाना है, लेकिन मैं निश्चित नहीं हूं कि चीजें कैसे काम करती हैं।
मैट पार्कर

@ मैट: मैं x11()आदत के कारण उपयोग करता हूं । मैं आर में साजिश रचने का कोई विशेषज्ञ नहीं हूं, लेकिन प्रलेखन पर नज़र रखने के बाद, dev.new()शायद बेहतर होगा।
जोशुआ उलरिक

63

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

plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))

आप अपने ग्राफ़िक की अक्ष सीमाएँ निर्दिष्ट कर सकते हैं।


25

यह आपके मूल समाधान की तुलना में मामूली सरल है:

plot(0,type='n',axes=FALSE,ann=FALSE)

जोड़ने की जरूरत नहीं है ann=FALSE, वैसे भी एक खाली क्षेत्र होगा। लेकिन एक महान समाधान, धन्यवाद!
एमएस बेरेंड्स

22

निम्नलिखित कथानक में कुछ भी नहीं देता है और यह खाली रहेगा।

plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")

यह तब उपयोगी होता है जब आप एक forलूप या कुछ इसी तरह के भीतर लाइनों या डॉट्स को जोड़ना चाहते हैं । जिस डेटा को आप प्लॉट करना चाहते हैं, उसके आधार पर मूल्यों को बदलना xlimऔर उसे याद रखना ylim

साइड नोट के रूप में: इसका इस्तेमाल बॉक्सप्लेट, वायलिन प्लॉट और झुंड प्लॉट के लिए भी किया जा सकता है। उन लोगों के लिए जिन्हें add = TRUEअपने प्लॉटिंग फ़ंक्शन में जोड़ना याद है और यह भी निर्दिष्ट at =करना है कि आप उन्हें किस नंबर पर प्लॉट करना चाहते हैं (डिफ़ॉल्ट एक्स एक्सिस है जब तक कि आपने horz = TRUEइन फ़ंक्शन में सेट नहीं किया है।


17

एडम, आपकी टिप्पणी के बाद ("मुझे मल्टीप्लेट (mfrow) प्लॉट में भराव के रूप में काम करने के लिए खाली प्लॉट चाहिए था।"), जो आप वास्तव में चाहते हैं वह एमएफजी विकल्प है

    par(mfg=c(row,column))

- आप अगले प्लॉट को कहां रखना चाहते हैं, इस पर नियंत्रण। उदाहरण के लिए, एक 3x3 गुणक के बीच में एक भूखंड रखना, करना

    par(mfrow=c(3,3))
    par(mfg=c(2,2))
    plot(rnorm(10))

14

आपको एक नई प्लॉट विंडो की आवश्यकता है, और एक समन्वय प्रणाली भी है, इसलिए आपको इसकी आवश्यकता है plot.new()और plot.window()फिर आप ग्राफ तत्वों को जोड़ना शुरू कर सकते हैं:

plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )

points( rnorm(100), rnorm(100) )
axis( side=1 )

उदाहरण की साजिश


4

आपके समाधान में एक दिलचस्पी है जो plot.new()हालांकि नहीं है: जिस खाली प्लॉट में आप "ड्रा" करते हैं, उसके साथ निर्दिष्ट निर्देश पर आप पाठ लिख सकते हैं text(x = ..., y = ..., your_text)



2

अगर किसी को ggplot2समाधान की तलाश है, तो आप cowplotया तो patchworkपैकेज का उपयोग कर सकते हैं

library(ggplot2)

### examples from cowplot vignettes
plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) +
  geom_point(size = 2.5)
plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) + 
  geom_bar() +
  theme(axis.text.x = element_text(angle = 0, vjust = 0.5))

library(cowplot)
### use NULL
plot_grid(plot.mpg, NULL, NULL, plot.diamonds,
  labels = c("A", "B", "C", "D"),
  ncol = 2
)

# Note: if you want to initialize an empty drawing canvas, use ggdraw() 

library(patchwork)
### use plot_spacer()
plot.mpg + plot_spacer() + plot_spacer() + plot.diamonds +
  plot_layout(ncol = 2) +
  plot_annotation(
    title = "Plot title",
    subtitle = "Plot subtitle",
    tag_levels = "A",
    tag_suffix = ")"
  )

2019-03-17 को रेप्रेक्स पैकेज (v0.2.1.9000) द्वारा बनाया गया


1

कुछ पाठों के साथ एक खाली प्लॉट जो निर्धारित स्थिति है।

plot(1:10, 1:10,xaxt="n",yaxt="n",bty="n",pch="",ylab="",xlab="", main="", sub="")
mtext("eee", side = 3, line = -0.3, adj = 0.5)
text(5, 10.4, "ddd")
text(5, 7, "ccc")

पाठ क्यों जोड़ें? "खाली प्लॉट बनाने का तरीका" के साथ क्या करना है? कुल मिलाकर, यह प्रश्न में ओपी की विधि की तुलना में अधिक जटिल लगता है plot(0,xaxt='n',yaxt='n',bty='n',pch='',ylab='',xlab=''), क्योंकि जब आप जोड़ते हैं तब main = "", sub = ""भी आपको उनके बिना एक ही परिणाम मिलता है।
ग्रिगोर थॉमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.