gpt4 book ai didi

r - 使用 R 网格包的行

转载 作者:行者123 更新时间:2023-12-04 09:41:28 25 4
gpt4 key购买 nike

我将 R 与 cygwin 结合使用,并尝试绘制一些基本图形。这是 Paul Murrell 的一篇论文中的一个简单示例:

library(grid)
x <- rnorm(50)
y <- x + rnorm(50, 1, 2)
rx <- range(x)
dx <- diff(rx)
ry <- range(y)
dy <- diff(ry)
max <- max(rx, ry)
min <- min(rx, ry)
r <- c(min(rx, ry), max(rx, ry))
d <- diff(r)
scale <- r + c(-1, 1) * d * 0.05
extscale <- c(min(scale), max(scale) + diff(scale) * 1/3)
lay <- grid.layout(2, 2,
widths = unit(c(3, 1), "inches"),
heights = unit(c(1, 3), "inches"))
vp1 <- viewport(w = unit(4, "inches"), h = unit(4, "inches"),
layout = lay, xscale = extscale, yscale = extscale)
grid.newpage()
pushViewport(vp1)
grid.rect()
grid.xaxis()
grid.text("Test", y = unit(-3, "lines"))
grid.yaxis()
grid.text("Retest", x = unit(-3, "lines"), rot = 90)
vp2 <- viewport(layout.pos.row = 2, layout.pos.col = 1,
xscale = scale, yscale = scale)
pushViewport(vp2)
grid.lines()
grid.points(x, y, gp = gpar(col = "blue"))

这个情节很好。但是,如果我将以下行添加到程序中:

grid.lines(x, y, gp = gpar(col = "red"))

到处都是线条。我原以为线条会按顺序连接这些点。我写的一些代码也遇到过类似的问题,但线条绘制得很好,但点却没有。

将不胜感激任何帮助。谢谢。

最佳答案

出于某种原因,grid.points()grid.lines() 具有不同的“默认单位”。 (这些单位分别是 "native""npc",当您将没有任何关联单位的数字向量传递给函数时使用。)

args(grid.lines)
# function (x = unit(c(0, 1), "npc"), y = unit(c(0, 1), "npc"),
# default.units = "npc", arrow = NULL, name = NULL, gp = gpar(),
# draw = TRUE, vp = NULL)
args(grid.points)
# function (x = stats::runif(10), y = stats::runif(10), pch = 1,
# size = unit(1, "char"), default.units = "native", name = NULL,
# gp = gpar(), draw = TRUE, vp = NULL)

快速解决方案是显式设置 grid.lines() 的默认单位以匹配 grid.points() 使用的单位:

grid.lines(x, y, gp = gpar(col = "red"), default.units = "native")

enter image description here

关于r - 使用 R 网格包的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com