我正在使用点大小来可视化一个变量。 我的问题是第一个(最小的)点大小(在这种情况下为“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
scale_size(limits = c(1,max(testdata $ CP),breaks = unique(testdata $ CP))
,但我不确定为什么默认设置不起作用。您不能为连续的“size”变量使用“discrete”大小比例尺,这就是为什么您的“scale_size_discrete”无法修复的原因。 - Gregor Thomasrange
参数而不是to
参数 -scale_size_continuous(range = c(3, 5))
。 - aosmithscale_size_continuous(range = c(3, 5))
能够正常工作。我仍然想知道为什么除非我指定一个在图例步骤中相等的范围,否则第一个点的大小会很小。数据的分类特性是否搞乱了它?我是否需要针对每个图形手动调整范围? - Alpi MurányiCP
中的数据更改为77 95 84 NA
(依此类推),图例变得正常了——但是绘图仍然有一些点,它们与图例不再匹配!链接 - Alpi Murányi