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

标签 r ggplot2 plotly

如何让 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/

相关文章:

r - ggplot2 中用矩形/阴影区域突出显示值

r - 带有特定顺序和百分比注释的 ggplot2 饼图

r - 使用 plotly 或 ggplot2 在 R 中创建拨号图

javascript - 自定义工具提示定位

r - 用dplyr对多个变量的所有可能组合进行分组

光栅包 : Lines around each cell

r - 绘制穿过所有数据点的平滑线

R plotly x 轴字符/因子(组合数字和 -)。绘图仅显示仅包含数字的轴。漏洞?

r - 如何从Markdown中的url插入图像

r - 将函数应用于 data.table 中的每个指定列并按引用更新