更新时间:2023-01-13 18:01:47
Here is the best plot_ly can do:
library(plotly)
library(tidyverse)
dat <- tibble(QuarterYear = c("Q4 2019", "Q4 2019", "Q4 2019",
"Q4 2019", "Q4 2019", "Q4 2019", "Q4 2019", "Q4 2019", "Q4 2019",
"Q4 2019", "Q4 2019", "Q4 2019", "Q1 2020", "Q1 2020", "Q1 2020",
"Q1 2020", "Q1 2020", "Q1 2020", "Q1 2020", "Q1 2020", "Q1 2020",
"Q1 2020", "Q1 2020", "Q1 2020", "Q2 2020", "Q2 2020", "Q2 2020",
"Q2 2020", "Q2 2020", "Q2 2020", "Q2 2020", "Q2 2020", "Q2 2020",
"Q2 2020", "Q2 2020", "Q2 2020", "Q3 2020", "Q3 2020", "Q3 2020",
"Q3 2020", "Q3 2020", "Q3 2020", "Q3 2020", "Q3 2020", "Q3 2020",
"Q3 2020", "Q3 2020", "Q3 2020"),
Grade = c("Grade 8", "Grade 8",
"Grade 8", "Grade 9", "Grade 9", "Grade 9", "Grade 10", "Grade 10",
"Grade 10", "Grade 11", "Grade 11", "Grade 11", "Grade 8", "Grade 8",
"Grade 8", "Grade 9", "Grade 9", "Grade 9", "Grade 10", "Grade 10",
"Grade 10", "Grade 11", "Grade 11", "Grade 11", "Grade 8", "Grade 8",
"Grade 8", "Grade 9", "Grade 9", "Grade 9", "Grade 10", "Grade 10",
"Grade 10", "Grade 11", "Grade 11", "Grade 11", "Grade 8", "Grade 8",
"Grade 8", "Grade 9", "Grade 9", "Grade 9", "Grade 10", "Grade 10",
"Grade 10", "Grade 11", "Grade 11", "Grade 11"),
Type = c("overallAverage",
"CT", "RT", "overallAverage", "CT", "RT", "overallAverage", "CT",
"RT", "overallAverage", "CT", "RT", "overallAverage", "CT", "RT",
"overallAverage", "CT", "RT", "overallAverage", "CT", "RT", "overallAverage",
"CT", "RT", "overallAverage", "CT", "RT", "overallAverage", "CT",
"RT", "overallAverage", "CT", "RT", "overallAverage", "CT", "RT",
"overallAverage", "CT", "RT", "overallAverage", "CT", "RT", "overallAverage",
"CT", "RT", "overallAverage", "CT", "RT"),
value = c(2.48, 2.21,
0.27, 3.48, 3.03, 0.45, 4.6, 4, 0.6, 2.8, 2.4, 0.4, 2.54, 2.28,
0.26, 3.45, 3, 0.45, 4.46, 3.88, 0.58, 3.56, 2.81, 0.75, 2.47,
2.14, 0.33, 2.96, 2.54, 0.41, 4.1, 3.69, 0.41, 3.44, 2.61, 0.83,
2, 1.81, 0.19, 2.54, 2.26, 0.28, 4.11, 3.68, 0.43, 2.67, 2.11,
0.56))
q4_2019 <- dat %>% filter(QuarterYear == "Q4 2019") %>%
group_by(Grade) %>%
arrange(Grade) %>%
plot_ly(
x = ~Type,
y = ~value,
color= ~Grade,
colors = 'Reds',
type = 'bar',
legendgroup=~Grade) %>%
layout(xaxis = list(title = "Q4 2019"))
q1_2020 <- dat %>% filter(QuarterYear == "Q1 2020") %>%
group_by(Grade) %>%
arrange(Grade) %>%
plot_ly(
x = ~Type,
y = ~value,
color= ~Grade,
colors = 'Reds',
type = 'bar',
legendgroup=~Grade,
showlegend = FALSE) %>%
layout(xaxis = list(title = "Q1 2020"))
q2_2020 <- dat %>% filter(QuarterYear == "Q2 2020") %>%
group_by(Grade) %>%
arrange(Grade) %>%
plot_ly(
x = ~Type,
y = ~value,
color= ~Grade,
colors = 'Reds',
type = 'bar',
legendgroup=~Grade,
showlegend = FALSE) %>%
layout(xaxis = list(title = "Q2 2020"))
q3_2020 <- dat %>% filter(QuarterYear == "Q3 2020") %>%
group_by(Grade) %>%
arrange(Grade) %>%
plot_ly(
x = ~Type,
y = ~value,
color= ~Grade,
colors = 'Reds',
type = 'bar',
legendgroup =~Grade,
showlegend = FALSE) %>%
layout(xaxis = list(title = "Q3 2020"))
subplot(q4_2019, q1_2020, q2_2020, q3_2020 ,titleX = TRUE,shareY = T) %>% layout(barmode = 'stack', showlegend = TRUE)