我正在使用点大小可视化变量.
我的问题是第一个(最小的)点大小(在这种情况下为“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
最佳答案 原来这是一个“人类感知的人工制品”,这意味着积分的缩放是正确的,但人们可能会觉得它不是.请参阅开发人员的讨论
here.
对我来说最好的解决方法是使用scale_radius(range = c(1,6))
进一步阅读感知和缩放的关系:Stevens’ power law