2016-09-07 12 views
0

私は水平バーをプロットしようとしており、プラス/マイナスの値で色付けしています。問題は、私がcategoryarray = catを使っても、バーの順番が変わってしまうことです。 color = sign部分を削除しても、その順序は問題ありません。ここに私のコードは、これまでです:カテゴリは縦棒グラフで表示されます(Plotlyで)

library(plotly) 
library(data.table) 

dt <- data.table(cat = c("A", "B", "C", "D"), 
        val = c(12, -3, -9, 2)) 
dt[, sign := "p"] 
dt[val < 0 , sign := "n"] 
setorder(dt, -cat) 

p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign) %>% 
    layout(title = "Some title", 
     xaxis = list(categoryarray = cat, categoryorder = "array"), 
     showlegend = FALSE) 
p 

そして出力: enter image description here

答えて

1

あなたが水平方向を使用しているので、y軸はカテゴリーを運びます。

library(plotly) 
library(data.table) 

dt <- data.table(cat = c("A", "B", "C", "D"), 
        val = c(12, -3, -9, 2)) 
dt[, sign := "p"] 
dt[val < 0 , sign := "n"] 
setorder(dt, -cat) 

p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign) %>% 
    layout(title = "Some title", 
     yaxis = list(categoryarray = cat, categoryorder = "array"), 
     showlegend = FALSE) 
p 

enter image description here

:だから、あなたは何をする必要があるか代わりに layout関数内のy軸を編集することです