2016-10-20 7 views
4

xとy変数で定義したものよりもプロットバーチャートの順序が違うのはなぜですか?r plotlyで注文する

など。

library(plotly) 

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

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

答えて

7

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" 
) 
10

Plotlyは、指定されたデータの順序で軸を並べ替えます。アルファベット順にcharacterの場合因子の場合にはレベルのオーダーである。この動作をオーバーライドするには、layoutxaxisためcategoryordercategoryarrayを定義する必要があります。

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

+1

この回答は、以下の要素に基づいてより柔軟です:) – pari

関連する問題