如何使 ggplot2 中点的大小与其数值成反比?

3

我正在使用 ggplot2 来可视化类似以下数据集中的三个变量:

data = data.frame(x = sample(1:10, 10, replace=TRUE), y = sample(1:10, 10, replace=TRUE), Rank = sample(1:10, 10, replace = TRUE))

以下是示例代码:

ggplot(data, aes(x = x, y = y)) + geom_point(aes(size = Rank))

不过,我希望点的大小与其排名呈反比例关系,这样接近“1”排名的点会比较大,并且在图例中能够正确显示。

有人可以帮忙吗?

1个回答

5
您可以使用 1/Rank
ggplot(data, aes(x = x, y = y)) + geom_point(aes(size = 1/Rank))

刚好比我快一步,加一。也许你还可以通过 max(Rank) 来将数据归一化为1。 - Paul Hiemstra
感谢您的快速反馈。这样可以正确显示,但现在图例没有反映出排名本身。这似乎是一个简单的问题,但我对ggplot2不熟悉,找不到快速解决方法。 - Tim
如果这个回答对你来说令人满意,Tim,你可以考虑点击答案左侧投票总数下方的“检查”标记来接受它。 - gung - Reinstate Monica

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