我想使用ggplot2中的geom_count图,但是值的范围太小,图例符号会成为出现次数的浮点数,例如: 1 1.5 2 2.5 3
这是一个测试用例:
test = mtcars[1:6,]
ggplot(test, aes(cyl, carb)) +
geom_count(aes(color = ..n.., size = ..n..)) +
guides(color = 'legend')
如何才能使断点仅在完整整数处发生?
答案 0 :(得分:5)
您可以为连续breaks
和color
比例设置size
。
您可以为中断提供值向量,但根据文档,也可以给出breaks
参数:
一个将限制作为输入并将中断作为输出
的函数
因此,对于像您的示例这样的简单案例,您可以使用as.integer
或round
作为函数。
ggplot(test, aes(cyl, carb)) +
geom_count(aes(color = ..n.., size = ..n..)) +
guides(color = 'legend') +
scale_color_continuous(breaks = round) +
scale_size_continuous(breaks = round)
对于比您的示例更大范围的整数,您可以手动输入中断,例如breaks = 1:3
,或者编写一个取得比例限制的函数并返回一个整数序列。然后,您可以将此函数用于breaks
。
这可能看起来像:
set_breaks = function(limits) {
seq(limits[1], limits[2], by = 1)
}
ggplot(test, aes(cyl, carb)) +
geom_count(aes(color = ..n.., size = ..n..)) +
guides(color = 'legend') +
scale_color_continuous(breaks = set_breaks) +
scale_size_continuous(breaks = set_breaks)