R中的图无法识别PCH编号

时间:2019-07-02 00:27:01

标签: r plot pch

我正在尝试使用常规plot() fcn在底数R中作图。但是,传递要使用的pch的向量时,它不会绘制pch,只会绘制数字“ 1”,而不是我要调用的pch的形状。

生成一些数据(我的真实数据对于加载和元对象都具有400行以上:

loads <- data.frame(PC1 = c(11.32, 13.18, 12.82, 24.70), PC2 = c(-23.05,  -24.71, -20.28, 10.09))
row.names(loads) <- c("100_A", "100_B", "100_C", "100_Orig")
meta <- data.frame(pch = c(17, 17, 17, 16), color = c("red", "red", "blue", "blue"))
row.names(meta) <- row.names(loads)

要绘制:

x <- loads[, 1] ; y <- loads[, 2]
pch <- meta$pch
col <- meta$color

plot(x, y,
 col = col, pch = pch, cex = 2, lwd = 4,
 xlab = paste("PC1"), ylab = paste("PC2"))

现在,这将按照我在向量中的顺序绘制正确的颜色(红色和蓝色);真正的问题变成了绘制PCH。而不是圆形(pch = 16)或三角形(pch = 17),而是绘制红色或蓝色数字1!我附了一张我的数据实际上在做什么的照片。 Not recognizing pch code

考虑到我传递的pch向量周围不能带有引号,因此我用以下代码删除了引号:

pch <- meta$pch
pch <-as.vector(noquote(pch))
class(pch)
[1] "character"

但是,这会产生相同的结果(绘制数字1)。有趣的是,使用此代码时,它可以正常工作。它使我所有的颜色变为蓝色,并且我得到了漂亮的蓝色圆圈。

plot(x, y,
 col = "blue, pch = 16, cex = 2, lwd = 4,
 xlab = paste("PC1"), ylab = paste("PC2"))

这告诉我plot函数无法识别我的混合了pch 16和17的长向量。

或者,如果我使用rep函数生成我的pch向量,则测试表明它可以正常工作。但是我有超过400行。我无法为每个密码手动输入rep。我将在这里永恒印出来。

关于做什么的任何建议????

1 个答案:

答案 0 :(得分:1)

尝试将col定义为字符,将pch定义为数字,如下所示:

plot(x, y,
     col = as.character(col), pch = as.numeric(pch), cex = 2, lwd = 4,
     xlab = paste("PC1"), ylab = paste("PC2"))