R语言 使用ggplotly()时,“x”和“单位必须有长度> 0的错误消息,我试着转换成一个因素,然而,我仍然得到同样的错误

lymnna71  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(76)

嗨,谢谢你阅读我的问题。利用钻石的数据

d1 <- diamonds %>% ggplot() + 
geom_col(aes(x = carat, y = price, fill = cut)) +
facet_grid(cut~clarity) +
theme_bw() + 
theme(strip.text.y = element_blank())

我可以绘制图表,但是当我将d1插入ggplotly()时,我得到了这样的消息:
网格错误::unit(stripTextY$size,units =“points”):“x”和“units”的长度必须> 0
我尝试将cut转换为因子,但仍然得到相同的错误。有人有什么建议吗?谢谢

j5fpnvbx

j5fpnvbx1#

这似乎是一个错误或版本有关,但为了兴趣,我去挖。
如果你只是想删除文本:

# load packages:
library(ggplot2)
library(plotly)

# comment out the strip text from the ggplot call:
d1 <- diamonds %>% ggplot() + 
  geom_col(aes(x = carat, y = price, fill = cut)) +
  facet_grid(cut~clarity) +
  theme_bw()  # + 
  # theme(strip.text.y = element_blank())

# use plotly_build to create a structure you can interfere with:
d2 <- ggplotly(d1)
fig <- plotly_build(d2)

# turn off the relevant text:
# start by exploring fig$x$layout$annotations - for me these labels appear at positions 11 to 15.
# set them to NULL
fig$x$layout$annotations[11:15] <- NULL

# and plot:
fig

相关问题