For a project I need to create bar plots in which the bars can be ordered decreasing by value. This was done using the xaxis-options with categoryorder = “array”, categoryarray = myOrderedLabels. This approach provided most flexibility for including other types of orderings.
I found a rather weird and unexpected behavior with these plots, apparently caused by one label being “-1”. In some cases, when ordering decreasing by value the order seems to be reversed, even though the categoryarray is ordered correctly. You can find a minimal example using some random data. If you run it multiple times, you will find that the bars are sometimes ordered decreasing and sometimes ordered increasing.
I am not sure if this issue occurs during the translation from R to the plotly.js library or it is a bug in plotly.js. Maybe one of the plotly devs could look into that?
Thanks a lot for your input!
library(plotly) labels <- c("-2", 1:10) values <- runif(11, 0, 100) data <- data.frame(labels, values) # Ordered by values categoryOrder <- as.vector(data[order(data[["values"]], decreasing = TRUE),"labels"]) print(categoryOrder) p <- plot_ly(data) p <- add_trace(p, x = data[["labels"]], y = data[["values"]], type = 'bar') p <- layout(p, yaxis = list(title = "values"), xaxis = list(title = "labels", type="category", categoryorder = "array", categoryarray = categoryOrder)) p