geom_point最小点大小不成比例

时间:2016-05-23 19:02:53

标签: r ggplot2

我使用点大小可视化变量。 我的问题是第一个(最小的)点大小(在这种情况下" 70")显着(不成比例地)小于其余点。 (参见CP的图例)

Notice that the point size for "70" is very small

这是我使用的代码:

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

1 个答案:

答案 0 :(得分:1)

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

对我来说,最好的解决方法是使用fsi

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