gpt4 book ai didi

r - 在 ggplot/Plotly 中设置图例的 alpha

转载 作者:行者123 更新时间:2023-12-01 14:00:16 27 4
gpt4 key购买 nike

如何让 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 版本:

ggplot version

剧情版:

enter image description here

最佳答案

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

如果您查看 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

enter image description here

另一种解决方案是打开和关闭图例。

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com