0
私はプロットで複数の行の線の種類( "ソリッド"、 "ダッシュ"、 "ドット"など)を設定しようとしています。私は、行のタイプを指定するデータフレームに列(因子変数)を持っています。plotly線種のpopertyの設定R
以下は、私が使用しているサンプルコードです。
mydf <- data.frame(x = c(1:10), y1 = c(11:20), y2 = c(21:30))
mydf1 <- gather(mydf,'var', 'val', -x)
mydf1$lt <- factor(c(rep("solid",10),rep("dot",10)))
pal <- RColorBrewer::brewer.pal(nlevels(mydf1$lt),"Set1")
p <-plot_ly(mydf1, x = x, y = val, type = 'line', color = var,colors = pal,line = list(width = 3, dash = lt))
p<- layout(p,title = "Hello", annotations = list(x = mydf1$x, y = mydf1$var))
p
mydf1 $ ltは、必要な行タイプを指定します。 上記の例では、y1は実線で、y2は点線でなければなりません。
私が個別にadd_trace()を使用して行を追加することで、問題を解決することができます。私は同じことをするより簡潔でエレガントな方法を探しています。以下は可能な解決策の1つです。上記例えば
p1 <- plot_ly(mydf)
p1 <- add_trace(p1, x = x, y = y1, line = list(dash = "dash"))
p1 <- add_trace(p1, x = x, y = y2, line = list(dash = "solid"))
p1
ありがとうございます。 「ドット」を意味する「3」が何であるか説明できますか?線種とそれに対応する数値の間にはどのような種類の列挙/変換が起こりますか? – user98180
「3」は破線のドット間隔/幅です。 (ソリッド= "ソリッド"、ドット= "3")[lt] 'は因子レベル'ドット 'を値' 3 'にマッピングします。 – lukeA