根据管线结果在R中绘制直方图

时间:2020-08-10 19:37:23

标签: r ggplot2 plot statistics histogram

我正在使用R绘制直方图

我使用此函数获取同一类别的所有数字的总和

pll <- medical %>%  group_by(numHospStays) %>% summarise(val=sum(numVisits))

结果是一个列表

enter image description here

我正在尝试使用numHospStays列作为我的x轴绘制直方图。 val列是numHospStays中每个类别的密度。

3 个答案:

答案 0 :(得分:2)

ggplot(pll) + geom_col(aes(x=numHospStays, y=val))会工作吗?这是一个条形图,其功能非常类似于我认为的直方图。

答案 1 :(得分: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")

enter image description here

或者为了强调入场人数呈指数下降的趋势,请尝试在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()

enter image description here

答案 2 :(得分:0)

为您的数据提供reproducible example,将有助于我们回答您的问题。

在对数据进行一些假设的情况下,您可以使用以下代码创建没有group_bysummarise步骤的密度直方图:

ggplot(data = medical) +
  geom_histogram(aes(x = numHospStays, y = ..density..))
相关问题