我使用点大小可视化变量。 我的问题是第一个(最小的)点大小(在这种情况下" 70")显着(不成比例地)小于其余点。 (参见CP的图例)
这是我使用的代码:
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
答案 0 :(得分:1)
原来这是一个“人类感知的人工制品”,这意味着积分的缩放是正确的,但人们可能会觉得它不是。请参阅开发人员的讨论here。
对我来说,最好的解决方法是使用fsi
进一步阅读感知与缩放的关系:Stevens' power law