Как отсортировать гистограмму с плотно расположенными по значению r? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть этот график , и я хочу, чтобы он появился в Sam - Jhon - Paul порядке, потому что это идет от самой высокой до самой низкой цены, кто-то может сказать мне, как заказать это по стоимости? Попытка с использованием кода ниже в layout разделе, но это не слово.

 layout(yaxis = list(title = 'Cost'), 
        xaxis = list(title = 'Parent',
                     categoryorder = "array",
                     categoryarray = ~cost), 
                     barmode = 'stack') 

1 Ответ

1 голос
/ 20 февраля 2020

Вы почти у цели. Вам просто нужно использовать порядок top_3$parent в вашем categoryarray вместо cost, как показано ниже:

layout(yaxis = list(title = 'Cost'), 
       xaxis = list(title = 'Parent',
               categoryorder = "array",
               categoryarray = top_3$parent), 
               barmode = 'stack')

Итак, используя полный код печати:

plot_ly(sample[sample$parent %in% top_3$parent,], 
        x = ~parent, y = ~cost, type = 'bar', color = ~topic) %>%
        layout(yaxis = list(title = 'Cost'), 
               xaxis = list(title = 'Parent', 
                            categoryorder = "array", 
                            categoryarray = top_3$parent), 
                            barmode = 'stack') %>%
        config(displayModeBar = FALSE)

Вы должны получить следующий участок:

enter image description here

...