我对R非常陌生,我正在尝试使用ggplot2绘制一个带有第三个变量的图。我已经搜索了答案,但没有找到类似的内容(或者我不知道正确的搜索词)。 我有三列数据,它们将成为我的x、y和z变量。 我想要一个可以显示x和y轴数值(即第一和第二列变量)的图表。然而,我希望图表中的“点”(作为散点图)是变量z中显示的值。有没有办法做到这一点?我尝试过的所有内容都是将x绘制在y上。感谢任何帮助!
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中的信息?在R菜谱中有一些很好的示例。my.data
的数据框,其中包含列x
、y
和z
,则需要按以下方式设置绘图: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的值,因为在设置图表时已经做过了。