geom_point最小点大小不成比例

我正在使用点大小可视化变量.

我的问题是第一个(最小的)点大小(在这种情况下为“70”)显着(不成比例地)小于其余点. (参见CP的图例)

《geom_point最小点大小不成比例》

这是我正在使用的代码:

ggplot(data=testdata, aes(x=variable, y=value, group=ID, size=CP)) + geom_point()

在这个数据上:

   ID  CP variable value
1  C1  70        A    76
2  C2  95        A    20
3  C3 100        A    30
4  C4  NA        A    17
5  C1  70        B    36
6  C2  95        B    10
7  C3 100        B    51
8  C4  NA        B    41
9  C1  70        C    89
10 C2  95        C     1
11 C3 100        C    94
12 C4  NA        C     6
13 C1  70        D   100
14 C2  95        D    98
15 C3 100        D    16
16 C4  NA        D    33

现在,当我试图调整点大小时R不喜欢它:

> testplot = ggplot(data=testdata, aes(x=variable, y=value, group=ID, size=CP)) + geom_point()
> testplot = testplot + scale_size_discrete(range=c(3,5))
Warning message:
Using size for a discrete variable is not advised. 
> testplot
Error: Continuous value supplied to discrete scale

并没有产生情节.同样的:

> testplot = ggplot(data=testdata, aes(x=variable, y=value, group=ID, size=CP)) + geom_point()
> testplot = testplot + scale_size_continuous(to=c(3,5))
Error in scale_size_continuous(to = c(3, 5)) : 
  unused argument (to = c(3, 5))
> testplot
Error: Continuous value supplied to discrete scale

最佳答案 原来这是一个“人类感知的人工制品”,这意味着积分的缩放是正确的,但人们可能会觉得它不是.请参阅开发人员的讨论
here.

对我来说最好的解决方法是使用scale_radius(range = c(1,6))

进一步阅读感知和缩放的关系:Stevens’ power law

点赞