ggplot中分组/计数/数据的直方图
Posted
技术标签:
【中文标题】ggplot中分组/计数/数据的直方图【英文标题】:histogram of grouped/count/ data in ggplot 【发布时间】:2021-11-02 06:09:37 【问题描述】:我已经汇总了数据,每行代表几个人,例如
data <- tribble(
~x, ~count,
10, 2,
12, 5,
10, 1,
15, 12,
15.5, 2,
11, 7,
19, 1,
14, 1,
9, 1,
17, 1,
13, 4)
是否可以根据计数创建直方图或密度图
data %>% ggplot(aes(x = x, count = count)) + geom_histogram(bins = 5)
(在这种情况下计数被忽略),还是我应该取消分组数据?
【问题讨论】:
【参考方案1】:我认为geom_col
比geom_histogram
更适合此问题,尽管可以使用geom_histogram(stat = "identity")
(与此答案的先前版本一样。)
library(ggplot2)
library(dplyr, warn.conflicts = FALSE)
data <- tribble(
~x, ~count,
10, 2,
12, 5,
10, 1,
15, 12,
15.5, 2,
11, 7,
19, 1,
14, 1,
9, 1,
17, 1,
13, 4)
data %>% ggplot(aes(x = x, y = count)) + geom_col()
由reprex package (v2.0.1) 于 2021-09-05 创建
【讨论】:
这对于大型数据集根本不起作用,但取消分组似乎是一种解决方案:data %>% uncount(count) %>% ggplot(aes(x = x)) + geom_histogram()
“根本不起作用”是什么意思?一个错误,或输出不符合您的预期?
抱歉,不清楚。使用 2k 记录数据集,它不会产生任何输出(空图)。这是 50 条记录的示例。使用建议的方法会产生一些输出,但这不是我想要的。 data1 <-fread("https://www.dropbox.com/s/giwwep7ij6t4er2/testdata50.csv?dl=1")
方法 1:data1 %>% ggplot(aes(x = x, y = count)) + geom_col()
方法 2:data1 %>% uncount(count) %>% ggplot(aes(x = x)) + geom_histogram(bins=10)
以上是关于ggplot中分组/计数/数据的直方图的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化分组变量下的数据分布(线条色彩配置)WVPlots包的ShadowHist函数比较分组下的数据直方图ggplot2分面图facet_wrap可视化分组变量下的数据分布