根据x和y轴绘制第三个变量

Fab*_*abs 5 r ggplot2

我是R的新手,我正在尝试使用ggplot2绘制第三个变量.我找了一个答案,我找不到任何类似的东西(或者我不知道要搜索的正确单词).

我有三列数据,它们将是我的x,y和z变量.

我想要一个可以显示x和y轴值的图形(如第一和第二列变量中所示).但是,我希望图中的"点"(作为散点图)是变量z中显示的值.有没有办法做到这一点?我试过的所有东西都是针对y绘制的.

谢谢你的帮助!

mar*_*bel 5

我相信这就是您要问的:映射两个变量:(x,y) 在它们的轴上并显示第三个变量的“文本”。让我们使用这个数据框 - 我们将尝试“写入” X1 和 X3

df <- data.frame(X1 = 1:5, X2 = 2*1:5, X3 = rnorm(1:5))
Run Code Online (Sandbox Code Playgroud)

使用基本图形,您可以只绘制一个字符

plot(df$X1, df$X2, pch = paste(df$X1)) plot(df$X1, df$X2, pch = paste(df$X3)) 
Run Code Online (Sandbox Code Playgroud)

似乎效果不佳。

使用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)
Run Code Online (Sandbox Code Playgroud)

更好的选择是在 aes() 中添加颜色

ggplot(df, aes(x = X1, y = X2, color=X3)) + geom_text(label = df$X3)
Run Code Online (Sandbox Code Playgroud)


And*_*ton 3

我希望图表中的“点”(作为散点图)是变量 z 中显示的值。有办法做到这一点吗?

确实。您需要考虑的是如何在z变量中呈现数据。我的意思是你希望 z 中的信息通过点的颜色、大小或面积来显示吗?R 食谱中有一些关于如何做到这一点的很好的例子。

如果您有一个名为 的数据框my.data,其中包含列xyz,您需要像这样设置绘图:

my.plot <- ggplot(data = my.data,
                  aes(x = x,
                      y = y))
Run Code Online (Sandbox Code Playgroud)

my.data上面的示例表示“使用绘制数据my.data$x来设置 x 位置和y.data$y设置 y 位置”。如果你的 x 变量是grid.x并且 y 是grid.y你会有

my.plot <- ggplot(data = my.data,
                  aes(x = grid.x,
                      y = grid.y))
Run Code Online (Sandbox Code Playgroud)

那么你需要添加你的积分。这次我们假设 中的信息z将用于设置点的颜色,在本例中是美观的colour

my.plot <- my.plot + geom_point(aes(colour = z))
print(my.plot)
Run Code Online (Sandbox Code Playgroud)

应该就是这样。您不需要告诉geom_point()x 和 y 是什么,因为在设置绘图时您已经这样做了。