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

时间:2013-07-06 02:16:24

标签: r ggplot2

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

我有三列数据,这些数据将是我的x,y和z变量。

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

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

我相信这就是你要问的:在它们的轴上映射两个变量:(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)

答案 1 :(得分:3)

  

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

当然。您需要考虑的是如何在z变量中显示数据。我的意思是你是否希望z中的信息由点的颜色,大小或区域显示?有一些很好的例子说明如何在the R cookbook执行此操作。

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

my.plot <- ggplot(data = my.data,
                  aes(x = x,
                      y = y))

上面的示例说明“使用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))

然后你需要添加你的积分。这次我们假设z中的信息将用于设置点的颜色,在这种情况下是colour美学:

my.plot <- my.plot + geom_point(aes(colour = z))
print(my.plot)

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