首页 > 解决方案 > 使用条件“大小”参数在 R 中绘制 z 变量

问题描述

我想在 R 中创建一个散点图,其中第三个“z”变量根据它们的值范围绘制在不同大小的点中。

df这是我拥有的数据框:

    mean.temp mean.lfk  LKZ
v3   24.33958 69.43333 12.5
v7   25.80208 67.76250 53.3
v8   26.24583 66.85000 12.5
v11  21.52917 42.59375 35.0
v13  23.96042 66.92917 20.0
v14  24.16042 66.74375 56.7
v15  26.88542 69.69583 10.0
v16  26.45417 72.37292 56.7
v17  24.92708 64.59375  6.7
v18  25.77391 65.64348  3.3
v21  23.11290 71.37419  0.5

我想使用mean.tempmean.lfk沿 x 和 y 轴,但我不想实际绘制它们的值。相反,我想绘制LKZ为“z”变量。的不同值LKZ应通过不同大小的点来可视化,即0.5最小的点和56.7最大的点。

我并没有走得太远,只得到了这段显然不起作用的代码,如下图所示:

plot(df$mean.temp, df$mean.lfk, pch = paste(df$LKZ))

在此处输入图像描述

关于如何使用 R 基础图形获得我想要的任何想法?

标签: rvariablesplotscatter-plot

解决方案


绘图参数cex控制字符的大小。由于您的尺寸范围为 100 倍,因此在下面的示例中,我将点尺寸与 LKZ 的平方根成比例。此外,较大的点会遮盖较小的点,因此我为这些点添加了一些透明度,以便您可以看到它们。

plot(df[,1:2], pch=16, cex=sqrt(df$LKZ), col="#00000044",
    xlim=c(21,27), ylim=c(40,75))

尺寸与 LKZ 成正比

数据

df = read.table(text="    mean.temp mean.lfk  LKZ
v3   24.33958 69.43333 12.5
v7   25.80208 67.76250 53.3
v8   26.24583 66.85000 12.5
v11  21.52917 42.59375 35.0
v13  23.96042 66.92917 20.0
v14  24.16042 66.74375 56.7
v15  26.88542 69.69583 10.0
v16  26.45417 72.37292 56.7
v17  24.92708 64.59375  6.7
v18  25.77391 65.64348  3.3
v21  23.11290 71.37419  0.5", 
header=TRUE)

推荐阅读