如何通过变量的值指定 pch?
How to specify pch by the value of a variable?
我正在为 R 中的一些离散点绘制 Y 与 X 的关系图。第三个变量 Z 的值为 A 或 B,因此我想通过 pch 在阴谋。我可以做到以下几点。
plot(X, Y, pch=c(3,4)[Z])
但是,我不知道这种情况下Z=="A"是赋给了3还是4。如何指定 Z=="A" 绘制为 4 而 Z=="B" 绘制为 3?
提前致谢。
您可以根据 Z
的值从 c(3, 4)
中提取子集,例如:
c(3,4)[(Z == "A") + 1]
所以当 Z <- "A"
Z <- "A"
c(3,4)[(Z == "A") + 1]
#[1] 4
当Z <- "B"
Z <- "B"
c(3,4)[(Z == "A") + 1]
#[1] 3
所以代码是
plot(X, Y, pch = c(3,4)[(Z == "A") + 1])
另一种选择是使用 ifelse
plot(X, Y, pch = ifelse(Z == "A", 4, 3))
你可以做的是先绘制 X 和 Y,
plot(X, Y)
之后,使用 points() 在同一图上绘制 Z。根据不同pch
.
分别做
points(X, Z[Z == "A"], pch = 4)
points(X, Z[Z == "B"], pch = 3)
您可以因式分解 Z 列。例如:
df = data.frame(x = 1:12, y = 12:1, z = c('A','B','C'))
df$z = as.factor(df$z)
plot(df$x, df$y, pch = c(22,23,24)[df$z])
会给你:
我正在为 R 中的一些离散点绘制 Y 与 X 的关系图。第三个变量 Z 的值为 A 或 B,因此我想通过 pch 在阴谋。我可以做到以下几点。
plot(X, Y, pch=c(3,4)[Z])
但是,我不知道这种情况下Z=="A"是赋给了3还是4。如何指定 Z=="A" 绘制为 4 而 Z=="B" 绘制为 3?
提前致谢。
您可以根据 Z
的值从 c(3, 4)
中提取子集,例如:
c(3,4)[(Z == "A") + 1]
所以当 Z <- "A"
Z <- "A"
c(3,4)[(Z == "A") + 1]
#[1] 4
当Z <- "B"
Z <- "B"
c(3,4)[(Z == "A") + 1]
#[1] 3
所以代码是
plot(X, Y, pch = c(3,4)[(Z == "A") + 1])
另一种选择是使用 ifelse
plot(X, Y, pch = ifelse(Z == "A", 4, 3))
你可以做的是先绘制 X 和 Y,
plot(X, Y)
之后,使用 points() 在同一图上绘制 Z。根据不同pch
.
points(X, Z[Z == "A"], pch = 4)
points(X, Z[Z == "B"], pch = 3)
您可以因式分解 Z 列。例如:
df = data.frame(x = 1:12, y = 12:1, z = c('A','B','C'))
df$z = as.factor(df$z)
plot(df$x, df$y, pch = c(22,23,24)[df$z])
会给你: