我想在 R Studio 中创建一个信天翁图,所以我下载了metap包(https://www.rdocumentation.org/packages/metap/versions/1.11)。
在描述和示例代码的帮助下,我能够用自己的数据绘制一个图,如下所示。我想要分析的研究使用了不同的方法,我想用不同的颜色显示它们。例如。方法 1 有红色数据点,方法 2 有蓝色,方法 3 有绿色。
我无法弄清楚如何使 cols 参数起作用,每次我输入 NULL 以外的内容时,代码要么不运行,要么收到错误消息。你们能帮帮我吗?
这是cols参数的说明:
pch 参数可以是单个值,也可以是相同值的向量 长度为 p。它可能包含任何合法的输入 图形库中的同名参数将被使用 对于绘制的点。 cols 参数的工作原理类似。
剧情:
我的代码:
albatros(Test_Albatross$p, Test_Albatross$n,
contours = list(type = "smd", contvals = c(0.25, 0.5, 0.8), ltys = 1:3),
axes = list(ylimit = c(1,100), xlimit = 0.0001, lefttext = "Negative correlation",
righttext = "Positive correlation"),
plotpars = list(yscale = NULL, pchs = letters[unclass(Test_Albatross$Kennung)], cols = NULL),
main = "Test2")
我的数据集(Excel):
我已经尝试过:
cols = colors[unclass(Test_Albatross$Method)]
cols = "red"
rgb、十六进制、值、...
根据
albatros
的帮助页面
> help(albatros)
plotpars
包含的列表
yscale
y轴缩放,查看详情pchs
使用的符号cols
点的颜色...
要传递到绘图的参数
这表示
plotpars
参数应仅包含 3 个绘图参数(yscale、pch 和 col),任何其他绘图参数将在 ...
中指定。但是,cols
并未传递给 plot
albatros(Test_Albatross$p, Test_Albatross$n,
contours = list(type = "smd", contvals = c(0.25, 0.5, 0.8), ltys = 1:3),
axes = list(ylimit = c(1,100), xlimit = 0.0001, lefttext = "Negative correlation",
righttext = "Positive correlation"),
plotpars = list(yscale = NULL,
pchs = letters[Test_Albatross$Kennung],
cols = rainbow(10)))
有趣的是,以下确实更改了标签的颜色。不幸的是,轴的颜色现在链接到
col
全局参数,如果指定了该参数,那么这将是轴的颜色。如果指定了向量,则颜色将是第一种颜色。一个技巧是将第一种颜色指定为黑色。但是,第一个标签(“a”)也必须是黑色的。
albatros(Test_Albatross$p, Test_Albatross$n,
contours = list(type = "smd", contvals = c(0.25, 0.5, 0.8), ltys = 1:3),
axes = list(ylimit = c(1,100), xlimit = 0.0001, lefttext = "Negative correlation",
righttext = "Positive correlation"),
plotpars = list(yscale = NULL,
pchs = letters[Test_Albatross$Kennung]),
col = c("black", rainbow(9)))
如果您不希望第一个标签是黑色的,那么还有另一种选择。但这是相当乏味的。再次运行命令,出现完整的彩虹颜色。
albatros(Test_Albatross$p, Test_Albatross$n,
contours = list(type = "smd", contvals = c(0.25, 0.5, 0.8), ltys = 1:3),
axes = list(ylimit = c(1,100), xlimit = 0.0001, lefttext = "Negative correlation",
righttext = "Positive correlation"),
plotpars = list(yscale = NULL,
pchs = letters[Test_Albatross$Kennung]),
col = rainbow(10))
您会得到彩色标签,甚至是第一个标签。但轴是红色的(彩虹的第一种颜色)。然后,我们只需复制构建轴的
albatros
代码,并在现有绘图上自行绘制它们。
xtrans <- function(p) {
p2 <- ifelse(p > 0.5, 1 - p, p)
res <- log(1/p2, base = 10)
res <- ifelse(p > 0.5, -res, res)
res
}
sigs <- c(0.050, 0.010, 0.001)
i <- 2
while (sigs[i] > 0.001) {
sigs[i + 1] <- sigs[i]/10
i <- i + 1
}
ylabs <- c(1, 2, 5)
maxn <- max(Test_Albatross$n)
i <- 3
while (ylabs[i] < maxn) {
ylabs[i + 1] <- ylabs[i - 2] * 10
i <- i + 1
}
axis(1, at = c(-xtrans(sigs), 0, xtrans(sigs)), labels = c(sigs, "null", sigs),
cex.axis = 0.75, las = 3)
axis(2, at=sqrt(ylabs), labels = ylabs, cex.axis = 0.75, las = 2)