Ordering in r plotly barchart

后端 未结 3 1454
夕颜
夕颜 2020-12-05 18:03

Why do I get the different order in plotly bar chart than I defined in x and y variables.

E.g.

library(plotly)

plot_ly(
  x = c(\"giraffes\", \"oran         


        
相关标签:
3条回答
  • 2020-12-05 18:39

    plotly does it in alphabetical order. If you want to change it, just try to change levels of factor. This would be possible if you give your data in the form of data.frame like here:

    library(plotly)
    
    table <- data.frame(x = c("giraffes", "orangutans", "monkeys"),
                        y = c(20, 14, 23))
    table$x <- factor(table$x, levels = c("giraffes", "orangutans", "monkeys"))
    
    plot_ly(
        data=table,
        x = ~x,
        y = ~y,
        name = "SF Zoo",
        type = "bar"
    )
    
    0 讨论(0)
  • 2020-12-05 18:54

    You can also use reorder if you want to order based on a second variable:

    library(plotly)
     x <- c("giraffes", "orangutans", "monkeys")
     y <- c(20, 14, 23)
    
    plot_ly(
      x = ~reorder(x,y),
      y = ~y,
      name = "SF Zoo",
      type = "bar"
      ) 
    
    0 讨论(0)
  • 2020-12-05 18:55

    Plotly will order your axes by the order that is present in the data supplied. In case of character vectors alphabetically; in case of factors by the order of levels. To override this behaviour, you need to define categoryorder and categoryarray for the xaxis inside layout:

    library(plotly)
    xform <- list(categoryorder = "array",
                  categoryarray = c("giraffes", 
                                    "orangutans", 
                                    "monkeys"))
    
    plot_ly(
     x = c("giraffes", "orangutans", "monkeys"),
     y = c(20, 14, 23),
     name = "SF Zoo",
     type = "bar") %>% 
     layout(xaxis = xform)
    

    0 讨论(0)
提交回复
热议问题