ggplot2 geom_count将图例设置为整数

时间:2017-08-28 14:47:50

标签: r ggplot2 count legend

我想使用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')

如何才能使断点仅在完整整数处发生?

1 个答案:

答案 0 :(得分:5)

您可以为连续breakscolor比例设置size

您可以为中断提供值向量,但根据文档,也可以给出breaks参数:

  

一个将限制作为输入并将中断作为输出

的函数

因此,对于像您的示例这样的简单案例,您可以使用as.integerround作为函数。

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)