ggplot中如何在aes映射内整体放大geom_point的点?
在ggplot的aes映射内整体放大geom_point点的方法
之所以你在aes里写size=10*carat和size=carat效果完全一样,是因为ggplot的size美学映射采用相对缩放机制——它会自动把你传入的数值归一化到默认的尺寸区间(比如1到6),不管数值本身放大多少倍,相对比例始终不变,视觉上就看不出差异。
下面给两种可行的解决办法:
方法1:用scale_size_continuous调整整体尺寸范围
这种方法保留数据的相对大小关系,只是整体放大所有点,是最常用的方式:
library(ggplot2) library(dplyr) ggplot(diamonds %>% head(30)) + geom_point(aes(x = cut, y = color, size = carat)) + scale_size_continuous(range = c(5, 15)) # 自定义最小/最大点尺寸,数值越大整体越大
方法2:用scale_size_identity直接使用绝对尺寸
如果你想让10*carat的数值直接对应点的实际大小(单位是mm),可以用这个方法,不过要注意数值范围,避免点太大或太小:
ggplot(diamonds %>% head(30)) + geom_point(aes(x = cut, y = color, size = 10*carat)) + scale_size_identity() # 关闭自动缩放,直接用映射中的数值作为点的绝对尺寸
内容的提问来源于stack exchange,提问作者pluke
相关产品推荐
相关产品推荐

