【问题标题】:Manually specify cut points or bins for plotting with ggplot使用 ggplot 手动指定用于绘图的切割点或 bin
【发布时间】:2020-12-15 16:41:23
【问题描述】:

在基础 R 中,我可以使用 cut 创建自定义箱。 例如,我可以创建这些 bin 用于绘图:

data.frame(x = c(5, 1, 3, 2, 2, 3)) %>% mutate(bin = cut(x, breaks = c(0,3,5)))

  x   bin
1 5 (3,5]
2 1 (0,3]
3 3 (0,3]
4 2 (0,3]
5 2 (0,3]
6 3 (0,3]

ggplot2::cut_widthcut_interval 可以做到这一点吗?

我想手动指定每个 bin 中的值范围。

【问题讨论】:

  • 回复:“例如,我可以创建三个用于绘图的 bin”请注意,对于 n 个中断,会创建 n-1 个 bin。您可以指定任何跨越数据的中断。

标签: r ggplot2


【解决方案1】:

为什么不直接使用cut

library(dplyr)
library(ggplot2)

data.frame(x = c(5, 1, 3, 2, 2, 3)) %>%
  ggplot(aes(x = cut(x, breaks = c(0,3,5)))) + 
  geom_bar() +
  xlab("x")

默认的x轴标签比较麻烦,但是很容易重新标注。

【讨论】:

  • 我注意到它会将我数据中的一些值转换为 NA。例如,零是真实数据,但即使使用 break = c(0,3,5) 也会转换为 NA
  • cut() 内部,使用include.lowest = TRUEcut(x, breaks = c(0,3,5), include.lowest = TRUE))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
相关资源
最近更新 更多