对条形图使用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()
所做的。