我对 R 很陌生,我正在尝试使用 ggplot2 将第三个变量绘制到绘图中。我已经搜索了一个答案,但我找不到任何类似的东西(或者我不知道要搜索的正确词)。
我有三列数据,它们将是我的 x、y 和 z 变量。
我想要一个可以显示 x 和 y 轴值的图表(如第一列和第二列变量)。但是,我希望图中的“点”(作为散点图)是变量 z 中显示的值。有没有办法做到这一点?我尝试过的所有东西都针对 y 绘制 x。
谢谢你的帮助!
我相信这就是您要问的:在它们的轴上映射两个变量:(x,y) 并显示第三个变量的“文本”。让我们使用这个数据框 - 我们将尝试“写入”X1 和 X3
df <- data.frame(X1 = 1:5, X2 = 2*1:5, X3 = rnorm(1:5))
使用基本图形,您只需绘制一个字符
plot(df$X1, df$X2, pch = paste(df$X1)) plot(df$X1, df$X2, pch = paste(df$X3))
似乎效果不佳。
使用ggplot2:
ggplot(df, aes(x = X1, y = X2)) + geom_text(label = df$X1)
ggplot(df, aes(x = X1, y = X2)) + geom_text(label = df$X3)
一个更好的选择是在 aes() 中添加颜色
ggplot(df, aes(x = X1, y = X2, color=X3)) + geom_text(label = df$X3)
我希望图中的“点”(作为散点图)是变量 z 中显示的值。有没有办法做到这一点?
确实。您需要考虑的一点是如何在z
变量中呈现数据。我的意思是您是否希望 z 中的信息通过点的颜色、大小或面积来显示?R 食谱中有一些很好的例子来说明如何做到这一点。
如果您有一个名为 的数据框,其中包含、 和my.data
列x
,则需要像这样设置绘图:y
z
my.plot <- ggplot(data = my.data,
aes(x = x,
y = y))
上面的示例说“绘制用于设置 x 位置和设置 y 位置的my.data
数据my.data$x
” y.data$y
。如果您的 x 变量是grid.x
并且 y 是grid.y
您将拥有
my.plot <- ggplot(data = my.data,
aes(x = grid.x,
y = grid.y))
那么你需要添加你的积分。这次我们假设信息z
将用于设置点的颜色,在这种情况下是colour
美学:
my.plot <- my.plot + geom_point(aes(colour = z))
print(my.plot)
应该就是这样。您不需要告诉geom_point()
x 和 y 是什么,因为您在设置绘图时已经这样做了。