首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将大小映射到变量时的ggplot2 geom_point图例

将大小映射到变量时的ggplot2 geom_point图例
EN

Stack Overflow用户
提问于 2017-06-15 13:38:40
回答 1查看 7.9K关注 0票数 3

我正在创建一个图,其中点的大小与给定变量的值成正比,然后我将其平方以增加点之间的大小差异……

代码语言:javascript
运行
复制
# Using example from https://www3.nd.edu/~steve/computing_with_data/11_geom_examples/ggplot_examples.html #

library(ggplot2)
str(mtcars)

p <- ggplot(data = mtcars, aes(x = wt, mpg))
p + geom_point(aes(size = (qsec^2)))

从结果图中,是否有一种方法可以指定在图例中显示的点的大小,并更改图例标签以反映这些值的原始值而不是正方形?(由手工编辑)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-15 15:11:00

使用scale_size修改图例。通过设置breakslabels,您可以生成所需的图形。以下是两个例子。

示例1:构建标度以显示mtcars$qsec的五个数字摘要,并以原始单位显示标签。

代码语言:javascript
运行
复制
library(ggplot2)

ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point(mapping = aes(size = qsec^2)) +
  scale_size(name   = "qsec",
             breaks = fivenum(mtcars$qsec)^2,
             labels = fivenum(mtcars$qsec))

示例2:用qsec^2显示图例。expression包装器将使您将标签的格式设置得太好。

代码语言:javascript
运行
复制
ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point(mapping = aes(size = qsec^2)) +
  scale_size(name   = expression(qsec^2),
             breaks = c(15, 17, 19, 21)^2,
             labels = expression(15^2, 17^2, 19^2, 21^2))

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44569050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档