对条形图使用R-ggridges(R-joyclot)

对条形图使用R-ggridges(R-joyclot),r,ggplot2,ggridges,R,Ggplot2,Ggridges,是否可以使用ggridges软件包绘制多组条形图而不是脊线,类似于geom_col() 我有以下数据: dt = tibble( hr = c(1,2,3,4,1,2,3,4), fr = c(.1,.5,.9,.1,.4,.9,.9,.4), gr = c('Mon','Mon','Mon','Mon','Sun','Sun','Sun','Sun') ) 下面的情节告诉我: ggplot(dt, aes(x=hr, y=gr, height=fr)) + ge

是否可以使用
ggridges
软件包绘制多组条形图而不是脊线,类似于
geom_col()

我有以下数据:

dt = tibble(
    hr = c(1,2,3,4,1,2,3,4),
    fr = c(.1,.5,.9,.1,.4,.9,.9,.4),
    gr = c('Mon','Mon','Mon','Mon','Sun','Sun','Sun','Sun')
)
下面的情节告诉我:

ggplot(dt, aes(x=hr, y=gr, height=fr)) + 
  geom_ridgeline() + ylab(NULL)

如您所见,它绘制了一条连接值的线。我要找的是单独的列,如下图所示:

ggplot(dt, aes(x=hr, y=fr)) + 
  geom_col() + ylab(NULL) +
  facet_wrap(~gr)

这里有一个解决方案,可以追踪各个条形图

library(tidyverse)
library(ggridges)

dt = tibble(
  hr = c(1,2,3,4,1,2,3,4),
  fr = c(.1,.5,.9,.1,.4,.9,.9,.4),
  gr = c('Mon','Mon','Mon','Mon','Sun','Sun','Sun','Sun')
)

# function that turns an x, y pair into the shape of a bar of given width
make_bar <- function(x, y, width = 0.9) {
  xoff <- width/2
  data.frame(x = c(x-xoff*(1+2e-8), x-xoff*(1+1e-8), x-xoff, x+xoff, x+xoff*(1+1e-8), x+xoff*(1+2e-8)),
             height = c(NA, 0, y, y, 0, NA))
}

# convert data table using make_bar function
dt %>%
  mutate(bars = map2(hr, fr, ~make_bar(.x, .y))) %>%
  unnest() -> dt_bars

ggplot(dt_bars, aes(x=x, y=gr, height=height)) + 
  geom_ridgeline() + ylab(NULL)
库(tidyverse)
图书馆(GG)
dt=tibble(
hr=c(1,2,3,4,1,2,3,4),
fr=c(.1、.5、.9、.1、.4、.9、.9、.4),
gr=c('Mon','Mon','Mon','Mon','Sun','Sun','Sun','Sun')
)
#函数,该函数将x,y对转换为给定宽度的条形
使成为酒吧%
unnest()->dt_条
ggplot(dt_条,aes(x=x,y=gr,height=height))+
geom_山脊线()+ylab(空)

“我需要它表示x值之间的恒定高度。”我不明白这意味着什么。也许你可以画出你真正想要的东西。您是否正在寻找平滑版的
geom_ridgeline
?很抱歉这个半生不熟的问题。我更新了问题,请提供两条评论:1。您是否查看过
stat\u binline()
?有帮助吗?2.您可以通过在左下角、左上角、右上角、右下角追踪来模拟条形图。这就是
stat\u binline()
所做的。