R语言使用ggplotly后如何仅关闭linetype图例并保留color图例?
问题原因
低版本plotly转换ggplot对象时,不会自动继承guides()函数设置的图例隐藏规则,因此你在ggplot层关闭linetype图例的操作会失效。
解决方案
在生成p = ggplotly(g)之后,通过修改plotly对象的trace属性即可实现仅隐藏linetype图例、保留color图例的需求,适配你当前使用的版本的代码如下:
# 遍历所有trace,仅隐藏linetype映射对应分组的图例项 for (i in seq_along(p$x$data)) { # 匹配linetype映射的变量分组(你的示例中linetype映射为group变量) if (p$x$data[[i]]$legendgroup == "group") { p$x$data[[i]]$showlegend <- FALSE } } # 输出修改后的图表 p
注意:R语言中的逻辑值为全大写的
TRUE/FALSE,你示例代码中写的False属于语法错误,执行时会报错,请先修正。
可选优化方案
如果你可以升级依赖包,将plotly升级到4.10.0及以上版本后,ggplot中的guides(linetype = "none")设置可以被自动识别,不需要额外手动修改plotly对象。
内容的提问来源于stack exchange,提问作者narnia649
相关产品推荐
相关产品推荐

