如何让 plotly
图中的图例不继承图中使用的 alpha 值?
我知道如何使用 ggplot2 执行此操作:guides(colour = guide_legend(override.aes = list(alpha=1)))
但这并不能转化为 plotly。
plotly
有类似的选项吗?当从 ggplot
转换为 plotly
时,无论我做什么,它似乎都会获取图例的 alpha 值。
示例代码:
library(ggplot2)
library(plotly)
D <- rbind(beaver1,beaver2)
D$beaver= c(rep('A',nrow(beaver1)),rep('B',nrow(beaver2)))
p <- ggplot(D,aes(x=time,y=temp,color=beaver,group=day))+
geom_point(alpha=.1,show.legend = F)+
geom_line(alpha=.1,show.legend = F)+
geom_smooth(se=F)
ggplotly(p)
ggplot 版本:
剧情版:
最佳答案
据我所知,您无法控制图例的不透明度。
如果您查看 ggplotly
的字符串输出,您会发现有 2x3 条迹线。每个海狸有 3 条痕迹,一条用于标记,一条用于连接线,一条用于平滑线。第一条轨迹决定了图例,因此您可以重新排列 ggplot
,它应该可以工作。
library(ggplot2)
library(plotly)
D <- rbind(beaver1,beaver2)
D$beaver= c(rep('A',nrow(beaver1)),rep('B',nrow(beaver2)))
p <- ggplot(D,aes(x=time,y=temp,color=beaver,group=day))+
geom_smooth(se=F)+
geom_point(alpha=.1,show.legend = F)+
geom_line(alpha=.1,show.legend = F)
gp <- ggplotly(p)
gp
另一种解决方案是打开和关闭图例。
gp$x$data[[1]]$showlegend <- FALSE
gp$x$data[[2]]$showlegend <- FALSE
gp$x$data[[5]]$showlegend <- TRUE
gp$x$data[[6]]$showlegend <- TRUE
关于r - 在 ggplot/Plotly 中设置图例的 alpha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45601779/