r图条形图中的排序

r图条形图中的排序,r,plotly,R,Plotly,为什么在plotly条形图中得到的顺序与在x和y变量中定义的顺序不同 例如 我需要一个条形图,在这里我看到的条形图的顺序与定义x变量(分类)的顺序相同。有什么诀窍吗?将根据所提供数据中的顺序对轴进行绘图排序。如果字符矢量按字母顺序排列;如果是按级别顺序排列的因素。要覆盖此行为,需要为xaxis内部布局定义categoryorder和categoryarray: library(plotly) xform <- list(categoryorder = "array",

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

例如


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

将根据所提供数据中的顺序对轴进行绘图排序。如果
字符
矢量按字母顺序排列;如果是按级别顺序排列的因素。要覆盖此行为,需要为
xaxis
内部
布局定义
categoryorder
categoryarray

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)
library(plotly)
变换%
布局(xaxis=xform)

按字母顺序绘制。如果你想改变它,就试着改变因子的水平。如果您以
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"
)
library(plotly)

表如果要基于第二个变量进行排序,也可以使用
重新排序

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"
  ) 
library(plotly)

这个答案比基于因素的订购更灵活:)节省了我的时间!当然比其他因素更灵活!如果您有一个更大的数据集,则可以按所需顺序使用
表$x
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"
  )