Гистограмма порядка Plotly по осям Y / По высоте бара - PullRequest
0 голосов
/ 05 декабря 2018

Есть ли способ сортировки гистограммы по значениям по оси Y, например сначала показывать самый высокий столбец, а затем второй самый высокий и т. Д.

Скажем, у меня есть данные о товарах и продажах:

> Product <- c("Orange", "Mango", "Apple")
> Sale <- c(28, 50, 21)
> data <- data.frame(Product, Sale)
> plot_ly(data, x = ~Product, y = ~Sale, type = 'bar')

Здесь отображаются бары порядка Apple, Mango & Orange.мне нужен заказ: Mango, Orange & Apple.Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Вы можете просто изменить функцию plot_ly на

plot_ly(data, x = stats::reorder(Product, -Sale), y = ~Sale, type = 'bar')

Это должно работать

0 голосов
/ 05 декабря 2018

Вы должны установить уровни вашего фактора в правильном порядке.В вашем случае вы можете заказать data.frame на продажу, а затем установить уровень фактора в том виде, в каком они отображаются в текущей форме:

library(tidyverse)

Product <- c("Orange", "Mango", "Apple")
Sale <- c(28, 50, 21)
data <- data.frame(Product, Sale) %>%
  arrange(-Sale) %>%
  mutate(Product = fct_inorder(Product))

plot_ly(data, x = ~Product, y = ~Sale, type = 'bar')

Соответствующая функция fct_inorder() взята из forcats пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...