【问题标题】: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_bysummarise 步骤:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-11-26
          • 1970-01-01
          • 2015-07-12
          • 1970-01-01
          • 2016-11-23
          • 2020-04-15
          • 2019-10-02
          相关资源
          最近更新 更多