垂直条形图中的类别顺序(在 Plotly 中)
Categories order in vertical bar chart ( in Plotly )
我正在尝试绘制水平条并按正值/负值为它们着色。问题是即使我使用了 categoryarray = cat
,栏的顺序也发生了变化。如果我删除 color = sign
部分,订单就没问题了。到目前为止,这是我的代码:
library(plotly)
library(data.table)
dt <- data.table( cat = c("A", "B", "C", "D"),
val = c(12, -3, -9, 2))
dt[, sign := "p"]
dt[val < 0 , sign := "n"]
setorder(dt, -cat)
p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign ) %>%
layout(title = "Some title",
xaxis = list(categoryarray = cat, categoryorder = "array"),
showlegend = FALSE)
p
以及输出:
由于您使用的是水平方向,因此 y 轴包含类别。所以你需要做的是在 layout
函数中编辑 y 轴:
library(plotly)
library(data.table)
dt <- data.table( cat = c("A", "B", "C", "D"),
val = c(12, -3, -9, 2))
dt[, sign := "p"]
dt[val < 0 , sign := "n"]
setorder(dt, -cat)
p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign) %>%
layout(title = "Some title",
yaxis = list(categoryarray = cat, categoryorder = "array"),
showlegend = FALSE)
p
我正在尝试绘制水平条并按正值/负值为它们着色。问题是即使我使用了 categoryarray = cat
,栏的顺序也发生了变化。如果我删除 color = sign
部分,订单就没问题了。到目前为止,这是我的代码:
library(plotly)
library(data.table)
dt <- data.table( cat = c("A", "B", "C", "D"),
val = c(12, -3, -9, 2))
dt[, sign := "p"]
dt[val < 0 , sign := "n"]
setorder(dt, -cat)
p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign ) %>%
layout(title = "Some title",
xaxis = list(categoryarray = cat, categoryorder = "array"),
showlegend = FALSE)
p
以及输出:
由于您使用的是水平方向,因此 y 轴包含类别。所以你需要做的是在 layout
函数中编辑 y 轴:
library(plotly)
library(data.table)
dt <- data.table( cat = c("A", "B", "C", "D"),
val = c(12, -3, -9, 2))
dt[, sign := "p"]
dt[val < 0 , sign := "n"]
setorder(dt, -cat)
p <- plot_ly(data = dt, y = cat, x = val, type = "bar", orientation = "h", color = sign) %>%
layout(title = "Some title",
yaxis = list(categoryarray = cat, categoryorder = "array"),
showlegend = FALSE)
p