2017-08-09 19 views
2

プロットで使用されるアルファ値を継承しないplotlyプロットの凡例を取得するにはどうすればよいですか?ggplot/Plotlyで凡例のアルファを設定する

私はggplot2でこれを行う方法を知っています:guides(colour = guide_legend(override.aes = list(alpha=1)))しかし、これはプロットに変換されません。

plotlyにも同様のオプションがありますか? ggplotからplotlyに変換すると、自分が何をしていても伝説のアルファ値を受け取っているようです。

コード例:

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

plotly版:私の知る限り、あなたが不透明度を制御することはできません知っているよう

enter image description here

答えて

1

リッジのnd。

ggplotlyの文字列出力を見ると、2x3のトレースがあることがわかります。ビーバーごとに3本、マーカー用に1本、接続ライン用に1本、滑らかなライン用に1本。最初のトレースは凡例を決定するので、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 
+1

ありがとうございます。この場合、レイヤの順序は関係ありません。また、順序が重要である場合を2番目のソリューションで解決できるように見えます。 –

関連する問題