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

问题描述

我正在使用R绘制直方图

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

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

结果是一个列表

enter image description here

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

解决方法

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

,

您在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

,

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

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

ggplot(data = medical) +
  geom_histogram(aes(x = numHospStays,y = ..density..))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...