我需要了解“设备是如何工作的”,并遵循great answer here和expected dev.new()
只是创建了一个新的默认设备。但这并不会发生:
getOption("device")
# [1] "RStudioGD"
dev.list()
# NULL
dev.cur()
# null device
# 1
dev.new()
# NULL
dev.list()
# RStudioGD png ?? why also png ??
# 2 3
dev.cur()
# RStudioGD
# 2
这种行为是故意的吗?我猜不是--为什么它要选择png呢?(我以前尝试过设备和png()
,但没有发现默认参数发生了变化。
在第一个答案之后,我也尝试了dev.new()
和RGui (Windows,x64)。还有另一种行为:
> dev.new()
# opens a graphics window
> dev.list()
# windows
# 2
> getOption("device") # Just the function?
function (width, height, pointsize, record, rescale, xpinch,
ypinch, bg, canvas, gamma, xpos, ypos, buffered, title, restoreConsole,
clickToConfirm, fillOddEven, family = "", antialias)
{
check <- Sys.getenv("_R_CHECK_SCREEN_DEVICE_", "")
msg <- "screen devices should not be used in examples etc"
if (identical(check, "stop"))
stop(msg, domain = NA)
else if (identical(check, "warn"))
warning(msg, immediate. = TRUE, noBreaks. = TRUE, domain = NA)
new <- list()
if (!missing(width))
new$width <- as.double(width)
if (!missing(height))
new$height <- as.double(height)
if (!missing(pointsize))
new$pointsize <- as.double(pointsize)
if (!missing(record))
new$record <- record
if (!missing(rescale))
new$rescale <- rescale
if (!missing(xpinch))
new$xpinch <- as.double(xpinch)
if (!missing(ypinch))
new$ypinch <- as.double(ypinch)
if (!missing(bg))
new$bg <- bg
if (!missing(canvas))
new$canvas <- canvas
if (!missing(gamma))
new$gamma <- gamma
if (!missing(xpos))
new$xpos <- as.integer(xpos)
if (!missing(ypos))
new$ypos <- as.integer(ypos)
if (!missing(buffered))
new$buffered <- buffered
if (!missing(title))
new$title <- title
if (!missing(restoreConsole))
new$restoreConsole <- restoreConsole
if (!missing(clickToConfirm))
new$clickToConfirm <- clickToConfirm
if (!missing(fillOddEven))
new$fillOddEven <- fillOddEven
if (!missing(antialias))
new$antialias <- match.arg(antialias, aa.win)
d <- check.options(new = new, envir = .WindowsEnv, name.opt = ".Windows.Options",
reset = FALSE, assign.opt = FALSE)
rescale <- match(d$rescale, c("R", "fit", "fixed"))
if (is.na(rescale))
stop("invalid value for 'rescale'")
antialias <- pmatch(d$antialias, aa.win)
invisible(.External(C_devga, "", d$width, d$height,
d$pointsize, d$record, rescale, d$xpinch, d$ypinch, d$canvas,
d$gamma, d$xpos, d$ypos, d$buffered, .PSenv, d$bg, d$restoreConsole,
d$title, d$clickToConfirm, d$fillOddEven, family, antialias))
}
<bytecode: 0x0000000015978308>
<environment: namespace:grDevices>
发布于 2021-10-17 19:42:47
dev.***
简介
默认情况下,在dev.new
之后,我们在Windows
中有两个图形设备
dev.list()
NULL
dev.cur()
null device
1
dev.new()
NULL
dev.list()
RStudioGD png
2 3
我们还可以添加哪些图形设备:
a)弹出窗口( MacOS上的__"quartz"
、Linux上的"X11"
。);
windows()
dev.list()
RStudioGD png windows
2 3 4
b) pdf;
pdf()
dev.list()
RStudioGD png pdf
2 3 4
c) png、svg、tiff、jpeg。
png()
svg()
tiff()
jpeg()
dev.list()
RStudioGD png pdf png svg tiff jpeg
2 3 4 5 6 7 8
要生成图形输出,请执行以下操作:
dev.set(5)
png
5
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
dev.off()
在此之后,将生成一个包含我们的绘图的文件,但是"png“图形输出将从我们的dev.list
中消失
dev.list()
pdf svg tiff
4 6 7
我们可以使用dev.next() and dev.prev()
在图形设备之间移动
要关闭所有图形设备,我们使用graphics.off()
graphics.off()
dev.list()
NULL
https://stackoverflow.com/questions/69587289
复制相似问题