使用ggplotly()时出现'x'和'units'长度需大于0错误的求助
解决ggplotly转换带facet_grid且隐藏y轴strip文本的错误
这个错误的核心原因是:当你用theme(strip.text.y = element_blank())完全移除y轴的分面标签元素时,ggplotly在解析ggplot对象的主题参数时,无法获取到strip文本的尺寸相关属性(size和units),从而触发grid::unit的报错。
解决方案
不要用element_blank()彻底移除元素,而是通过设置文本透明+尺寸为0的方式隐藏标签,这样能保留元素的结构,让ggplotly正常解析:
library(tidyverse) library(plotly) d1 <- diamonds %>% ggplot() + geom_col(aes(x = carat, y = price, fill = cut)) + facet_grid(cut~clarity) + theme_bw() + # 替换element_blank()为以下设置 theme(strip.text.y = element_text(color = "transparent", size = 0)) # 正常转换为plotly交互图 ggplotly(d1)
补充说明
你尝试将cut转为因子类型无效,是因为这个错误和变量的类型无关,本质是ggplotly对完全移除的主题元素处理逻辑的问题,所以调整变量类型无法解决该报错。
内容的提问来源于stack exchange,提问作者Randomname
相关产品推荐
相关产品推荐

