使用likert.density.plot移除均值竖线并设置填充不透明
解决likert.density.plot的两个可视化调整问题
1. 设置填充完全不透明
likert.density.plot支持通过可变参数(...)把额外参数传给内部的geom_density,直接在函数调用里加alpha=1就能实现完全不透明的填充:
likert.density.plot(likertdf, facet=FALSE, bw=0.5, alpha=1)
如果这种方式不生效,也可以利用函数返回ggplot对象的特性,追加修改:
likert.density.plot(likertdf, facet=FALSE, bw=0.5) + geom_density(alpha=1, inherit.aes = TRUE)
2. 移除均值竖线
别用geom_vline(FALSE),这个用法不对。likert.density.plot自带show.mean参数,默认是TRUE,把它设为FALSE就能直接关掉均值竖线:
likert.density.plot(likertdf, facet=FALSE, bw=0.5, show.mean=FALSE)
合并需求的完整代码
把两个参数一起加入,就能得到你想要的效果:
df = data.frame(Q1Pre=c(1,2,1,2,1,3,2,1),Q1Post=c(2,1,3,2,3,2,3,2)) # 转换为因子 df = lapply(df, factor, levels = 1:3) df = as.data.frame(df) # 转为likert对象 likertdf = likert(df) # 绘制填充不透明且无均值竖线的密度图 likert.density.plot(likertdf, facet=FALSE, bw=0.5, alpha=1, show.mean=FALSE)
补充说明
- 之前尝试的
aes(geom_density)是错误用法,aes是用来映射数据变量的,不是传递绘图样式参数的; - 直接用
geom_vline(FALSE)无法移除内置的均值线,因为这条线是函数内部通过show.mean参数控制生成的,必须通过该参数关闭。
内容的提问来源于stack exchange,提问作者User
相关产品推荐
相关产品推荐

