R 在ggplot/Plotly中设置图例的alpha

R 在ggplot/Plotly中设置图例的alpha,r,ggplot2,plotly,R,Ggplot2,Plotly,如何使绘图中的图例不继承绘图中使用的alpha值 我知道如何使用ggplot2执行此操作:guides(color=guide\u legend(override.aes=list(alpha=1))但这不能转换为plotly 对于绘图,是否有类似的选项?当从ggplot转换为plotly时,无论我做什么,它似乎都会拾取图例的alpha值 示例代码: library(ggplot2) library(plotly) D <- rbind(beaver1,beaver2) D$beaver

如何使
绘图中的图例不继承绘图中使用的alpha值

我知道如何使用ggplot2执行此操作:
guides(color=guide\u legend(override.aes=list(alpha=1))
但这不能转换为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)
库(ggplot2)
图书馆(绘本)

据我所知,你无法控制图例的不透明度

如果查看
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
库(ggplot2)
图书馆(绘本)

D谢谢你。在这种情况下,层顺序并不重要,看起来第二个解决方案可以解决顺序重要的情况。
gp$x$data[[1]]$showlegend <- FALSE
gp$x$data[[2]]$showlegend <- FALSE
gp$x$data[[5]]$showlegend <- TRUE
gp$x$data[[6]]$showlegend <- TRUE