【问题标题】:How to define bins in ggplot2?如何在 ggplot2 中定义 bin?
【发布时间】:2019-11-30 22:23:01
【问题描述】:

我一直在处理一个看起来如下数据集的数据集:

data <- tribble(
  ~id,   ~min,    ~max,
  "1",     5,      40,
  "2",     6,      50,
  "3",     7,      70,
  "4",     8,      90,
  "5",    23,     100,
  "6",    18,      40,
  "7",    34,      50,
  "8",    84,     150,
  "9",    15,      70,
  "10",  100,      90,
)

现在,我想通过定义 bin 的范围来绘制直方图。我已经绘制了下面的直方图,现在想要设置 X 轴上的 bin 范围,如下所示:0-5、10-20、30-50、50-100。

这是我的代码。有什么建议吗?

ggplot(data=data, aes(data$min)) + 
  geom_histogram(breaks = seq(0, 100, by = 10), 
                 col = "black", 
                 fill = "red", 
                 alpha = .2) + 
  labs(x = "Min", y = "Count") 

【问题讨论】:

  • 这个link应该有点用处。
  • @InfiniteFlashChess 实际上不是,在这个例子中 bin 是 20 宽。
  • 您可以更改休息时间间隔。 breaks = seq(....) 是一个值向量,正如eastclintw00d 所展示的那样。我不确定如何排除某些间隔。
  • 这能回答你的问题吗? How can i control bin intervals in ggplot2?
  • @InfiniteFlashChess 感谢您找到重复的问题,我现在已经标记了这个问题 - 您可以随时将问题标记为重复,以便引起我们的注意,我们可以关闭投票。

标签: r ggplot2 dplyr tidyverse


【解决方案1】:

根据您的需要调整breaks

ggplot(data=data, aes(data$min)) + 
  geom_histogram(breaks = c(0, 5, 10, 20 , 30, 50, 100), 
                 col = "black", 
                 fill = "red", 
                 alpha = .2,
                 ) + 
  labs(x = "Min", y = "Count") 

【讨论】:

  • 谢谢。有没有办法在 x 轴上确定刻度的大小,即使它们的范围不同?
  • 我认为这应该有效(来自@Joe):输出 % as.data.frame() %>% ggplot(aes(x = output, y = Freq)) + geom_col()
  • 在上面的输出中很好找到。
猜你喜欢
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多