在 r plotly 条形图中排序
Ordering in r plotly barchart
为什么我在 plotly 条形图中得到的顺序与我在 x 和 y 变量中定义的顺序不同。
例如
library(plotly)
plot_ly(
x = c("giraffes", "orangutans", "monkeys"),
y = c(20, 14, 23),
name = "SF Zoo",
type = "bar"
)
我需要条形图,在其中我可以看到与定义 x 变量(分类)的顺序相同的条形图。有什么技巧吗?
Plotly
将按照提供的数据中存在的顺序对轴进行排序。如果 character
向量按字母顺序排列;在按级别顺序排列的因素的情况下。要覆盖此行为,您需要为 layout
:
中的 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)
plotly
按字母顺序排列。如果您想更改它,只需尝试更改因子水平即可。如果您以 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
:
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"
)
为什么我在 plotly 条形图中得到的顺序与我在 x 和 y 变量中定义的顺序不同。
例如
library(plotly)
plot_ly(
x = c("giraffes", "orangutans", "monkeys"),
y = c(20, 14, 23),
name = "SF Zoo",
type = "bar"
)
我需要条形图,在其中我可以看到与定义 x 变量(分类)的顺序相同的条形图。有什么技巧吗?
Plotly
将按照提供的数据中存在的顺序对轴进行排序。如果 character
向量按字母顺序排列;在按级别顺序排列的因素的情况下。要覆盖此行为,您需要为 layout
:
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)
plotly
按字母顺序排列。如果您想更改它,只需尝试更改因子水平即可。如果您以 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
:
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"
)