在x轴和y轴上绘制第三个变量

5
我对R非常陌生,我正在尝试使用ggplot2绘制一个带有第三个变量的图。我已经搜索了答案,但没有找到类似的内容(或者我不知道正确的搜索词)。 我有三列数据,它们将成为我的x、y和z变量。 我想要一个可以显示x和y轴数值(即第一和第二列变量)的图表。然而,我希望图表中的“点”(作为散点图)是变量z中显示的值。有没有办法做到这一点?我尝试过的所有内容都是将x绘制在y上。感谢任何帮助!

我认为一个草图或者一个Excel图表会有所帮助。我不确定我的回答是否符合你的期望。 - Andy Clifton
我尝试上传一张图片,但仍然没有权限。我想要做的是类似于在Excel中添加一系列。假设我已经有了x=VirusProbabitlity1和y=VirusRate1的值,我想绘制的是z=0.0015的值。 - Fabs
2个回答

5
我相信这是您所询问的内容:将两个变量(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)

谢谢!最终我做了一个等高线图...我不想在图中映射(x,y)。但是我希望z的值与(x,y)相关联。我尝试使用你建议的方法处理我的数据,但由于我需要使用类似于facet_wrap的东西,所以我得到了一个错误消息。 - Fabs
好的。那太棒了。也许你可以用你最终做的来回答自己的问题。 - marbel

3
我希望图中的“点”(散点图)是变量z中显示的值。有没有办法做到这一点?
肯定有。你需要考虑如何呈现z变量中的数据。我的意思是,您是否希望通过点的颜色、大小或面积来显示z中的信息?在R菜谱中有一些很好的示例。
如果您有一个名为my.data的数据框,其中包含列xyz,则需要按以下方式设置绘图:
my.plot <- ggplot(data = my.data,
                  aes(x = x,
                      y = y))

上面的示例说明了“使用my.data$x设置x位置和y.data$y设置y位置绘制my.data中的数据”。如果您的x变量是grid.x,而y是grid.y,则可以这样做。
my.plot <- ggplot(data = my.data,
                  aes(x = grid.x,
                      y = grid.y))

接下来你需要添加你的点。这一次我们假设z中的信息将用于设置点的颜色,这种情况下是color美学:

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

就是这样了。你不需要告诉geom_point() x和y的值,因为在设置图表时已经做过了。


除非您想将“z”变量绘制在y轴上,否则应使用以下代码:“my.plot <- ggplot(data = my.data, aes(x = x, y =y)) + geom_point()”。 - Andy Clifton
谢谢!但这不是我想做的...我想上传一个带有图形或类似物的文件..但我仍然没有权限。不过还是谢谢! - Fabs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接