2016-09-07 3 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 축을 편집하는 것입니다