繁体   English   中英

在 r plotly barchart 中排序

[英]Ordering in r plotly barchart

为什么我在条形图中得到的顺序与我在 x 和 y 变量中定义的顺序不同。

例如

library(plotly)

plot_ly(
  x = c("giraffes", "orangutans", "monkeys"),
  y = c(20, 14, 23),
  name = "SF Zoo",
  type = "bar"
)

我需要条形图,在那里我看到的条形与定义 x 变量(分类)的顺序相同。 有什么技巧吗?

Plotly将按照提供的数据中存在的顺序对您的轴进行排序。 如果是按字母顺序排列的character向量; 在按级别顺序的因素的情况下。 要覆盖此行为,您需要为layoutxaxis定义categoryordercategoryarray

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)

在此处输入图片说明

plotly按字母顺序执行。 如果你想改变它,只需尝试改变因子水平。 如果您以data.frame的形式提供数据,这将是可能的, data.frame所示:

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"
)

如果您想根据第二个变量进行reorder也可以使用reorder

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"
  ) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM