【问题标题】:Plotting Histogram in R from pipeline result根据管道结果在 R 中绘制直方图
【发布时间】:2020-11-30 10:52:22
【问题描述】:
我正在使用 R 绘制直方图
我用这个函数得到了同一类别的所有数字的总和
pll <- medical %>% group_by(numHospStays) %>% summarise(val=sum(numVisits))
结果是一个列表
我正在尝试以 numHospStays 列作为我的 x 轴来绘制直方图。而 val 列作为 numHospStays 中每个类别的密度。
【问题讨论】:
标签:
r
ggplot2
plot
statistics
histogram
【解决方案1】:
ggplot(pll) + geom_col(aes(x=numHospStays, y=val)) 会起作用吗?这是一个条形图,我认为它的功能非常类似于直方图......
【解决方案2】:
您在 x 轴上有一个离散值,所以这在技术上是条形图而不是直方图。您可以为此使用geom_bar() 或geom_col():
medical %>%
group_by(numHospStays) %>%
summarise(val = sum(numVisits))
ggplot(aes(x = numHospStays, y = val)) +
geom_col(fill = "deepskyblue2", color = "black") +
labs(x = "Number of hospital stays", y = "Count")
或者,为了强调录取人数呈指数下降,请尝试在 y 轴上使用对数刻度,再加上美学价值的填充刻度,并使用 theme_bw 调整整体外观:
medical %>%
group_by(numHospStays) %>%
summarise(val = sum(numVisits))
ggplot(aes(x = numHospStays, y = val)) +
geom_col(aes(fill = numHospStays)) +
scale_fill_gradient(low = "forestgreen", high = "red", guide = guide_none()) +
labs(x = "Number of hospital stays", y = "Count") +
scale_y_log10() +
theme_bw()
【解决方案3】:
向reproducible example 提供您的数据将有助于我们回答您的问题。
对您的数据进行一些假设后,您可以使用以下代码创建一个密度直方图,而无需使用group_by 和summarise 步骤:
ggplot(data = medical) +
geom_histogram(aes(x = numHospStays, y = ..density..))