8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在单个图的顶部和底部绘制 2 个直方图

A N 1月前

14 0

我想在同一个绘图窗口上绘制两个直方图,但垂直放置。可以在 https://blogs.sas.com/content/graphicallyspeaking/files/2013/11/MirrorHistogramVert.pngBelo... 找到一个这样的示例

我想在同一个绘图窗口上绘制两个直方图,但垂直放置。可以在 https://blogs.sas.com/content/graphicallyspeaking/files/2013/11/MirrorHistogramVert.png

下面是我的代码

library(ggplot2)
set.seed(1)
dat = rbind(data.frame('val' = rnorm(100), 'met' = 'Metric1'), data.frame('val' = rt(100, 2), 'met' = 'Metric12'))

ggplot(dat, aes(x = val, y = met, color = met)) + geom_histogram()

但是我遇到了以下错误

Error in `geom_histogram()`:
! Problem while computing stat.
ℹ Error occurred in the 1st layer.
Caused by error in `setup_params()`:
! `stat_bin()` must only have an x or y aesthetic.
Run `rlang::last_trace()` to see where the error occurred.

我还想为 Normal distribution 两个直方图添加概率曲线。

任何建议什么可能是正确的方法都将非常有帮助

帖子版权声明 1、本帖标题:在单个图的顶部和底部绘制 2 个直方图
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由A N在本站《r》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您可以为这两个组创建两个单独的层, y = -after_stat(count) 在第二层中使用(默认 geom_h为togram is y = after_stat(count) .

    确保 breaks 两层相同,以便箱子排列整齐。

    ggplot(dat, aes(x = val, fill = met)) + 
      geom_histogram(data    = dat[dat$met == 'Metric1',], 
                     breaks  = seq(-40, 10, 0.5),
                     colour  = "black",
                     alpha   = 0.3) +
      geom_histogram(data    = dat[dat$met == 'Metric12', ],
                     breaks  = seq(-40, 10, 0.5),
                     mapping = aes(y = -after_stat(count)),
                     colour  = "black",
                     alpha   = 0.3) +
      scale_fill_manual(values = c('blue3', 'red3')) +
      coord_cartesian(xlim = c(-10, 10)) +
      labs(y = 'count') +
      theme_bw(20) +
      theme(panel.border = element_blank())
    

    enter image description here

  • @Bogaso 如果您指的是密度核估计,那么本质上是一样的,使用 geom_density 而不是 geom_histogram。您还需要为正变量的美观指定正值 after_stat(count)。如果您的意思是您想要一个适当缩放的正态分布,其平均值和标准差由数据决定,这是可能的,但相当复杂,本质上是一个全新的问题。

返回
作者最近主题: