web-dev-qa-db-ja.com

Rプロットバーチャートでの順序付け

プロットバーチャートでxおよびy変数で定義した順序と異なる順序を取得するのはなぜですか。

例えば。

library(plotly)

plot_ly(
  x = c("giraffes", "orangutans", "monkeys"),
  y = c(20, 14, 23),
  name = "SF Zoo",
  type = "bar"
)

X変数(カテゴリ)が定義されているのと同じ順序で棒が表示される棒グラフが必要です。そのためのトリックはありますか?

14
martinkabe

plotlyはアルファベット順に実行します。変更したい場合は、因子のレベルを変更してみてください。次のようにdata.frameの形式でデータを指定すると、これが可能になります。

library(plotly)

table <- data.frame(x = c("giraffes", "orangutans", "monkeys"),
                    y = c(20, 14, 23))
table$x <- factor(table$x, levels = c("giraffes", "orangutans", "monkeys"))

plot_ly(
    data=table,
    x = ~x,
    y = ~y,
    name = "SF Zoo",
    type = "bar"
)
17
Marta

Plotlyは、提供されたデータに存在する順序で軸を並べます。アルファベット順にcharacterベクトルの場合。レベルの順序による要因の場合。この動作をオーバーライドするには、categoryorder内のcategoryarrayに対してxaxislayoutを定義する必要があります。

library(plotly)
xform <- list(categoryorder = "array",
              categoryarray = c("giraffes", 
                                "orangutans", 
                                "monkeys"))

plot_ly(
 x = c("giraffes", "orangutans", "monkeys"),
 y = c(20, 14, 23),
 name = "SF Zoo",
 type = "bar") %>% 
 layout(xaxis = xform)

enter image description here

28
mtoto