Câu trả lời:
Làm thế nào về một cái gì đó như:
plot.new()
x11()
là lệnh R đa nền tảng để mở một thiết bị mới. Nếu bạn có một thiết bị đang mở và đang gọi plot.new()
, thiết bị hiện tại sẽ bị xóa.
x11()
vượt qua dev.new()
? Bản năng của tôi là đi với cái sau để thích ứng với bất kỳ thiết bị mặc định cục bộ nào, nhưng tôi không chắc đó là cách mọi thứ hoạt động.
x11()
do thói quen. Tôi không phải chuyên gia về âm mưu trong R nhưng sau khi xem qua tài liệu, dev.new()
có lẽ sẽ tốt hơn.
Tôi đề nghị ai đó cần tạo ra một cốt truyện trống để thêm một số hình ảnh vào đó sau này. Vì vậy, sử dụng
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
bạn có thể chỉ định các giới hạn trục của đồ họa của bạn.
Điều này đơn giản hơn một chút so với giải pháp ban đầu của bạn:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
, dù sao cũng sẽ là vùng trống. Nhưng một giải pháp tuyệt vời, cảm ơn!
Phần sau không mô tả bất cứ điều gì trong cốt truyện và nó sẽ vẫn trống.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Điều này hữu ích khi bạn muốn thêm các dòng hoặc dấu chấm sau đó trong một for
vòng lặp hoặc một cái gì đó tương tự. Chỉ cần nhớ thay đổi giá trị xlim
và ylim
giá trị dựa trên dữ liệu bạn muốn vẽ.
Một lưu ý phụ:
Điều này cũng có thể được sử dụng cho các ô Boxplot, Violin và các ô bầy đàn. đối với những người đó, hãy nhớ thêm add = TRUE
vào chức năng vẽ biểu đồ của họ và cũng chỉ định xác at =
định số bạn muốn vẽ chúng (mặc định là trục x trừ khi bạn đã đặt horz = TRUE
trong các hàm này.
Adam, theo nhận xét của bạn ở trên ("Tôi muốn ô trống đóng vai trò điền vào một ô nhiều ô (mfrow)."), Điều bạn thực sự muốn là tùy chọn mfg
par(mfg=c(row,column))
- điều khiển nơi bạn muốn đặt âm mưu tiếp theo. Ví dụ: để đặt một ô ở giữa ô bội 3x3, hãy làm
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Bạn cần một cửa sổ biểu đồ mới và cả một hệ tọa độ, vì vậy bạn cần plot.new()
và plot.window()
sau đó bạn có thể bắt đầu thêm các phần tử đồ thị:
plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )
points( rnorm(100), rnorm(100) )
axis( side=1 )
grid.newpage() ## If you're using ggplot
grid() ## If you just want to activate the device.
grid()
không liên quan đến gói lưới AFAIK
Nếu ai đó đang tìm ggplot2
giải pháp, bạn có thể sử dụng một trong hai cowplot
hoặc patchwork
các gói
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 = ")"
)
Được tạo vào ngày 23 tháng 3 năm 2019 bởi gói reprex (v0.2.1.9000)
Một âm mưu trống với một số văn bản được đặt vị trí.
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='')
, vì bạn thêm vào main = "", sub = ""
thậm chí bạn sẽ nhận được cùng một kết quả mà không có chúng.