ฉันต้องการสร้างพล็อตที่ว่างเปล่า นี่เป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้
plot(0, xaxt = 'n', yaxt = 'n', bty = 'n', pch = '', ylab = '', xlab = '')
วิธีแก้ปัญหาที่ง่ายกว่านี้หรือไม่?
PS: ว่างเปล่าไม่มีแกน ฯลฯ
ฉันต้องการสร้างพล็อตที่ว่างเปล่า นี่เป็นสิ่งที่ดีที่สุดที่ฉันสามารถทำได้
plot(0, xaxt = 'n', yaxt = 'n', bty = 'n', pch = '', ylab = '', xlab = '')
วิธีแก้ปัญหาที่ง่ายกว่านี้หรือไม่?
PS: ว่างเปล่าไม่มีแกน ฯลฯ
คำตอบ:
แล้วสิ่งที่ชอบ:
plot.new()
x11()
เป็นคำสั่ง R ข้ามแพลตฟอร์มเพื่อเปิดอุปกรณ์ใหม่ หากคุณมีอุปกรณ์เปิดอยู่และโทรออกplot.new()
อุปกรณ์ปัจจุบันจะถูกล้าง
x11()
มากกว่าdev.new()
หรือไม่? สัญชาตญาณของฉันคือไปกับอุปกรณ์หลังเพื่อรองรับอุปกรณ์เริ่มต้นในท้องถิ่น แต่ฉันไม่แน่ใจว่ามันทำงานอย่างไร
x11()
เพราะความเคยชิน ฉันไม่ใช่ผู้เชี่ยวชาญในการวางแผนใน R แต่หลังจากดูเอกสารแล้วdev.new()
น่าจะดีกว่า
ฉันขอแนะนำให้ใครบางคนต้องสร้างพล็อตที่ว่างเปล่าเพื่อเพิ่มกราฟิกในภายหลัง ดังนั้นการใช้
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
คุณสามารถระบุขีด จำกัด แกนของกราฟิกของคุณ
วิธีนี้ง่ายกว่าโซลูชันเดิมของคุณเล็กน้อย:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
อยู่ดีจะเป็นพื้นที่ว่างเปล่า แต่เป็นทางออกที่ดีขอบคุณ!
ต่อไปนี้จะไม่ลงจุดใด ๆ ในพล็อตและจะยังคงว่างเปล่า
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
สิ่งนี้มีประโยชน์เมื่อคุณต้องการเพิ่มเส้นหรือจุดในภายหลังภายในfor
ลูปหรือสิ่งที่คล้ายกัน อย่าลืมเปลี่ยนค่าxlim
และylim
ตามข้อมูลที่คุณต้องการลงจุด
หมายเหตุด้านข้าง:
สามารถใช้กับ Boxplot, Violin plot และ swarm plot สำหรับผู้ที่อย่าลืมเพิ่มลงadd = TRUE
ในฟังก์ชันการพล็อตและระบุat =
เพื่อระบุตัวเลขที่คุณต้องการลงจุด (ค่าเริ่มต้นคือแกน x เว้นแต่คุณจะตั้งค่าไว้horz = TRUE
ในฟังก์ชันเหล่านี้
อดัมตามความคิดเห็นของคุณด้านบน ("ฉันต้องการให้พล็อตว่างเพื่อทำหน้าที่เป็นฟิลเลอร์ในพล็อต multipot (mfrow)") สิ่งที่คุณต้องการจริงๆคือตัวเลือก mfg
par(mfg=c(row,column))
- ซึ่งควบคุมตำแหน่งที่คุณต้องการวางพล็อตถัดไป ตัวอย่างเช่นในการวางพล็อตไว้ตรงกลางของมัลติล็อต 3x3 ให้ทำ
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
คุณต้องมีหน้าต่างพล็อตใหม่และระบบพิกัดดังนั้นคุณต้องมีplot.new()
และplot.window()
จากนั้นคุณสามารถเริ่มเพิ่มองค์ประกอบกราฟ:
plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )
points( rnorm(100), rnorm(100) )
axis( side=1 )
มีความสนใจในการแก้ปัญหาของคุณที่plot.new()
ไม่ได้มี แต่ในพล็อตที่ว่างเปล่าคุณ "วาด" text(x = ..., y = ..., your_text)
คุณสามารถเขียนข้อความที่ระบุพิกัดด้วย
grid.newpage() ## If you're using ggplot
grid() ## If you just want to activate the device.
grid()
ไม่เกี่ยวข้องกับแพ็คเกจกริด AFAIK
หากใครกำลังมองหา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 โดยแพ็คเกจ reprex (v0.2.1.9000)
พล็อตว่างพร้อมข้อความบางส่วนที่กำหนดตำแหน่ง
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 = ""
แม้ว่าคุณจะได้ผลลัพธ์เดียวกันหากไม่มีพวกเขา