I have the dataframe below and I want it to be displayed as a grouped bar chart as follows. In the x axis
there should be the year
while in the y axis
count n. The complex thing is that I want the severity
to be displayed as a grouped bar chart with a different color for every unique value of severity
(2,3,4)
.
something like:
library(plotly)
df2<-structure(list(year = c("2017", "2018", "2018", "2019", "2019",
"2019", "2019", "2019", "2020", "2020", "2020", "2020", "2020"
), severity = c("2", "3", "4", "2", "2", "3", "3", "3", "2",
"3", "3", "3", "4"), accident.description = c("right lane blocked",
"two lanes blocked", "road closed", "one lane blocked", "right lane blocked",
"one lane blocked", "right lane blocked", "two lanes blocked",
"right lane blocked", "right and center lane blocked", "right lane blocked",
"two lanes blocked", "two lanes blocked"), n = c(3L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 1L, 1L, 3L, 2L, 2L)), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -13L), groups = structure(list(
year = c("2017", "2018", "2018", "2019", "2019", "2020",
"2020", "2020"), severity = c("2", "3", "4", "2", "3", "2",
"3", "4"), .rows = structure(list(1L, 2L, 3L, 4:5, 6:8, 9L,
10:12, 13L), ptype = integer(0), class = c("vctrs_list_of",
"vctrs_vctr", "list"))), class = c("tbl_df", "tbl", "data.frame"
), row.names = c(NA, -8L), .drop = TRUE))
fig <- plot_ly(df2, x = ~year, y = ~n, type = 'bar', name = 'severity',
hovertext = paste(
"<br>Year :",
df2$year,
"<br>Severity :",
df2$severity,
"<br>Accident Description :",
df2$accident.description,
paste("<br> Count:"),
df2$n
),
hoverinfo = "text")
fig