按升序绘制 Plotly 值
Plot Plotly Values in Ascending Order
我有一个数据集 data,具有以下值:
ID TIME Duration
A 12/18/2019 4:45:10 AM 1 sec
A 12/18/2019 9:06:59 PM 0 sec
B 12/19/2019 4:14:13 AM 7 sec
B 12/19/2019 4:14:20 AM 0 sec
A 12/18/2019 4:45:11 AM 0 sec
p <- plot_ly(data = df,
x = ~ID,
y = ~Duration,
name = "Title",
type = "bar",
orientation = 'v',
order = "ascending"
)%>%
layout(
title = "Title",
xaxis = list(title = "ID", tickangle = -45 ),
yaxis = list(title = "Time In Seconds"))
我如何指定图形按升序排列,如下图所示。
categoryorder = 'ascending' 无效。
我们可以使用reorder
来设置ID
的水平,这是一个根据Duration
值设置的因素。
library(plotly)
library(dplyr)
df1 %>%
group_by(ID) %>%
mutate(Dur.order = sum(as.numeric(Duration))) %>%
ungroup() %>%
mutate(ID.order = reorder(ID, Dur.order)) %>%
plot_ly(data = .,
x = ~ID.order,
y = ~Duration,
name = "Title",
type = "bar",
orientation = 'v',
order = "ascending") %>%
layout(title = "Title",
xaxis = list(title = "ID", tickangle = -45 ),
yaxis = list(title = "Time In Seconds"))
数据:
df1 <- structure(list(ID = c("A", "A", "B", "B", "A"),
Date = c("12/18/2019 4:45:10 AM", "12/18/2019 9:06:59 PM",
"12/19/2019 4:14:13 AM", "12/19/2019 4:14:20 AM",
"12/18/2019 4:45:11 AM"),
Duration = structure(c(1, 0, 7,0 , 0),
class = "difftime", units = "secs")),
row.names = c(NA, -5L), class = "data.frame")
我有一个数据集 data,具有以下值:
ID TIME Duration
A 12/18/2019 4:45:10 AM 1 sec
A 12/18/2019 9:06:59 PM 0 sec
B 12/19/2019 4:14:13 AM 7 sec
B 12/19/2019 4:14:20 AM 0 sec
A 12/18/2019 4:45:11 AM 0 sec
p <- plot_ly(data = df,
x = ~ID,
y = ~Duration,
name = "Title",
type = "bar",
orientation = 'v',
order = "ascending"
)%>%
layout(
title = "Title",
xaxis = list(title = "ID", tickangle = -45 ),
yaxis = list(title = "Time In Seconds"))
我如何指定图形按升序排列,如下图所示。 categoryorder = 'ascending' 无效。
我们可以使用reorder
来设置ID
的水平,这是一个根据Duration
值设置的因素。
library(plotly)
library(dplyr)
df1 %>%
group_by(ID) %>%
mutate(Dur.order = sum(as.numeric(Duration))) %>%
ungroup() %>%
mutate(ID.order = reorder(ID, Dur.order)) %>%
plot_ly(data = .,
x = ~ID.order,
y = ~Duration,
name = "Title",
type = "bar",
orientation = 'v',
order = "ascending") %>%
layout(title = "Title",
xaxis = list(title = "ID", tickangle = -45 ),
yaxis = list(title = "Time In Seconds"))
数据:
df1 <- structure(list(ID = c("A", "A", "B", "B", "A"),
Date = c("12/18/2019 4:45:10 AM", "12/18/2019 9:06:59 PM",
"12/19/2019 4:14:13 AM", "12/19/2019 4:14:20 AM",
"12/18/2019 4:45:11 AM"),
Duration = structure(c(1, 0, 7,0 , 0),
class = "difftime", units = "secs")),
row.names = c(NA, -5L), class = "data.frame")