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

如何在ggplot2分面网格图添加x=15竖线并转为ggplotly?

解决方案:在分面反转轴的ggplot2箱线图中添加竖线并转为ggplotly

问题原因

coord_flip()会反转坐标轴,原来的y轴(bad_fat)变为翻转后的x轴,原来的x轴(category)变为翻转后的y轴。你要添加的“x=15竖线”在翻转前其实是水平线y=15,直接用geom_vline(xintercept=15)会因为轴反转无法显示在正确位置。

修正后的完整代码

library(ggplot2)
library(plotly)

sbucks_new %>% 
  ggplot(aes(x= category, y= bad_fat, color= category)) +
  geom_boxplot() +
  # 翻转后显示为竖线的水平线
  geom_hline(yintercept = 15, color = "red", linetype = "dashed") +
  coord_flip() +
  facet_grid(~ milk_dummy)+
  labs(title= "Unhealthy Fats in Milk drinks by Category",
       x= "Drinks Category",
       y="Bad Fats (g)") +
  theme_bw() %>%
  # 转换为交互式图
  ggplotly()

关键说明

  • 使用geom_hline(yintercept=15):翻转坐标轴后,这条水平线会自动变成你需要的竖线,且默认在所有分面子图中显示。
  • 直接链式调用ggplotly():ggplotly能完整保留ggplot2的分面、轴反转和自定义线条设置,无需额外配置。

排查要点(若线条仍不显示)

  • 检查bad_fat的数值范围:如果15不在当前y轴范围内,添加expand_limits(y = c(0, max(sbucks_new$bad_fat) + 2))扩展轴范围。
  • 确保ggplot2和plotly包为最新版本:旧版本可能存在兼容性问题,执行update.packages(c("ggplot2", "plotly"))更新。

内容的提问来源于stack exchange,提问作者Clairine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:40:27