You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:37:05