plotly
を使用して、x軸ラベルとして長い文字列を含む棒グラフをプロットしようとしています。ただし、これらの文字列は、次のようにplotly
で区切られています。
plotly
軸の属性のリストを調べて、tickangle
(これは意味がありません、私は今気づきました)などの設定を試みましたが、すべてが役に立たない。
layout
関数で、プロットレイアウトのマージンを調整できます。
提供されていないため再現可能な例:
d <- data.frame(traitMean = apply(iris[-5], 2, mean))
# long labels
labs <- c("Long name for this", "Long name for that",
"Long names everywhere", "Petal Width")
これをデフォルトのマージンでプロットすると、ラベルはカットオフされます。
# example where ticklabels are cutoff
plot_ly(y = d[["traitMean"]], x = labs, type = "bar") %>%
layout(xaxis = list(tickangle = 45))
margin
のlayout
引数で、デフォルトの下マージンを調整できます。 margin
は名前付きリストを受け取ります。ここで、b
は「下」マージンの名前です。この例では160 pxが機能しますが、ラベルに適した値を見つける必要がある場合があります。
plot_ly(y = d[["traitMean"]], x = labs, type = "bar") %>%
layout(margin = list(b = 160), xaxis = list(tickangle = 45))
textposition="outside"
の場合、テキストがバーで途切れることがあります。これを回避するには、マージンを設定してy軸ラベルの切り捨てを修正するとともに、cliponaxis = FALSE
を設定して値ラベルの切り捨てを修正します。
以下は、上と下のマージンを追加してy軸ラベルの切り捨てを削除しているにもかかわらず、値ラベルの切り捨ての例です。
library(plotly)
plot_ly(
x = c("1. Group 1", "2. Txn","3. AOV","4. Account/Recv CV","5. Cost %","6. Lost %","7. Take Rate","8. Group 2"),
y = c(3.8,0,0,0,0,0,0,3.8),
name = "SF Zoo",
type = "waterfall",
measure = c("relative", "relative", "relative", "relative", "relative", "relative", "relative","total"),
text = c(3.8,0,0,0,0,0,0,3.8), textposition = 'outside'
) %>%
layout(margin = list(b = 20,t=20))
cliponaxis = FALSE
を追加すると、カットオフが削除されます
plot_ly(
x = c("1. Group 1",
"2. Txn",
"3. AOV",
"4. Account/Recv CV",
"5. Cost %",
"6. Lost %",
"7. Take Rate",
"8. Group 2"),
y = c(3.8,0,0,0,0,0,0,3.8),
name = "SF Zoo",
type = "waterfall",
measure = c("relative", "relative", "relative", "relative", "relative", "relative", "relative","total"),
text = c(3.8,0,0,0,0,0,0,3.8), textposition = 'outside', cliponaxis = FALSE
) %>%
layout(margin = list(b = 20,t=20))
お役に立てれば