带有 ggplotly 的堆叠条形图未正确显示
Stacked bar chart with ggplotly isn't shown properly
我的堆积条形图中的一个类别没有任何颜色,尽管它在图例中有正确的颜色。有谁知道如何解决这个问题?它涉及“日期”= 2020-11-7 和“Altersklassen_num”= 1.
在 ggplot(第一步)中,图表看起来非常好。此外,当我删除 dynamicTicks 时(但随后 x 尺度变得非常混乱)。
我的数据
structure(list(date = structure(c(18567, 18568, 18569,
18569, 18570, 18571, 18571, 18571, 18572, 18572, 18572, 18573,
18573, 18574, 18574, 18575, 18575, 18575, 18576, 18576, 18577,
18578, 18578, 18579, 18580, 18580, 18581, 18581, 18582, 18582,
18583, 18584, 18584, 18585, 18585, 18586, 18586, 18587, 18587,
18588, 18588, 18589, 18589, 18589, 18590, 18591, 18592, 18592,
18593, 18593, 18594, 18594, 18595, 18595, 18596, 18596, 18596,
18597, 18598, 18598, 18599, 18599, 18600, 18600, 18601, 18601,
18601, 18602, 18602, 18603, 18603, 18603), class = "Date"), Altersklassen_num = structure(c(2L,
1L, 1L, 2L, 1L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 1L, 2L,
3L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 3L, 1L, 2L, 1L, 2L, 4L), .Label = c("4", "3", "2", "1"), class = "factor"),
Altersklasse1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, 1), Altersklasse2 = c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
0, 0, 0, 0), Altersklasse3 = c(2, 0, 4, 4, 0, 3, 3, 3, 3,
3, 3, 1, 1, 4, 4, 1, 1, 1, 3, 3, 0, 2, 2, 0, 3, 3, 2, 2,
3, 3, 0, 2, 2, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 2,
2, 4, 4, 2, 2, 4, 4, 3, 3, 3, 0, 2, 2, 3, 3, 1, 1, 1, 1,
1, 1, 1, 3, 3, 3), Altersklasse4 = c(0, 3, 7, 7, 6, 5, 5,
5, 7, 7, 7, 3, 3, 11, 11, 9, 9, 9, 5, 5, 6, 2, 2, 5, 3, 3,
2, 2, 4, 4, 2, 3, 3, 4, 4, 2, 2, 3, 3, 5, 5, 3, 3, 3, 3,
3, 2, 2, 7, 7, 3, 3, 7, 7, 4, 4, 4, 7, 8, 8, 5, 5, 4, 4,
6, 6, 6, 1, 1, 3, 3, 3), Anz = c(2, 3, 7, 4, 6, 5, 3, 1,
7, 3, 1, 3, 1, 11, 4, 9, 1, 2, 5, 3, 6, 2, 2, 5, 3, 3, 2,
2, 4, 3, 2, 3, 2, 4, 1, 2, 2, 3, 2, 5, 3, 3, 3, 1, 3, 3,
2, 2, 7, 4, 3, 2, 7, 4, 4, 3, 1, 7, 8, 2, 5, 3, 4, 1, 6,
1, 2, 1, 1, 3, 3, 1)), row.names = c(NA, -72L), class = c("tbl_df",
"tbl", "data.frame"))
我的剧情代码:
g.barchart<- ggplot(d.data_agg, aes(x= as.Date(date, "%Y-%m-%d"), y=Anz, fill=Altersklassen_num, text=paste("Datum: ", format(as.Date(date),"%d.%m.%Y"), "<br><br>0- bis 49-Jährige: ", Altersklasse1,"<br>50- bis 64-Jährige: ", Altersklasse2,"<br>65- bis 79-Jährige: ", Altersklasse3,"<br>über 80-Jährige: ", Altersklasse4))) +
geom_bar(position="stack",stat="identity",width = 1.0)
g.barchart
fig <- ggplotly(g.barchart,tooltip = c("text"), dynamicTicks = TRUE) %>%
style(hoverinfo = c("text")) %>%
config(displayModeBar = T, locale = "de") %>%
layout(hoverlabel = list(align = "left", bgcolor = "#E5E8E8", font = list(size=14)),
legend = list(orientation = "h", x = 0.15, y = -0.15),
xaxis = list(showgrid = F, ticklen = 10,
tickval = NULL,
ticktext = NULL,
ticks = "outside",
tickmode = "array",
tickformat = '%e.%b',
ticktext = labels,
tickangle = 0,
title = "",
type = "date",
autorange = FALSE,
range = c(as.numeric(as.POSIXct("2020-10-30", format="%Y-%m-%d"))*1000,
as.numeric(as.POSIXct(k.DownDat, format="%Y-%m-%d"))*1000)),
yaxis = list(autorange = FALSE))
fig
尝试 complete
数据帧,然后 运行 ggplot
。在那之后,如果你 运行 ggplotly
,你将得到丢失的堆积条。
d.data_agg <- d.data_agg %>% complete(date, nesting(Altersklassen_num), fill = list(Anz=0))
我的堆积条形图中的一个类别没有任何颜色,尽管它在图例中有正确的颜色。有谁知道如何解决这个问题?它涉及“日期”= 2020-11-7 和“Altersklassen_num”= 1.
在 ggplot(第一步)中,图表看起来非常好。此外,当我删除 dynamicTicks 时(但随后 x 尺度变得非常混乱)。
我的数据
structure(list(date = structure(c(18567, 18568, 18569,
18569, 18570, 18571, 18571, 18571, 18572, 18572, 18572, 18573,
18573, 18574, 18574, 18575, 18575, 18575, 18576, 18576, 18577,
18578, 18578, 18579, 18580, 18580, 18581, 18581, 18582, 18582,
18583, 18584, 18584, 18585, 18585, 18586, 18586, 18587, 18587,
18588, 18588, 18589, 18589, 18589, 18590, 18591, 18592, 18592,
18593, 18593, 18594, 18594, 18595, 18595, 18596, 18596, 18596,
18597, 18598, 18598, 18599, 18599, 18600, 18600, 18601, 18601,
18601, 18602, 18602, 18603, 18603, 18603), class = "Date"), Altersklassen_num = structure(c(2L,
1L, 1L, 2L, 1L, 1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 1L, 2L, 1L, 2L,
3L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 1L, 1L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 3L, 1L, 2L, 1L, 2L, 4L), .Label = c("4", "3", "2", "1"), class = "factor"),
Altersklasse1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1, 1), Altersklasse2 = c(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0,
0, 0, 0, 0), Altersklasse3 = c(2, 0, 4, 4, 0, 3, 3, 3, 3,
3, 3, 1, 1, 4, 4, 1, 1, 1, 3, 3, 0, 2, 2, 0, 3, 3, 2, 2,
3, 3, 0, 2, 2, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 2,
2, 4, 4, 2, 2, 4, 4, 3, 3, 3, 0, 2, 2, 3, 3, 1, 1, 1, 1,
1, 1, 1, 3, 3, 3), Altersklasse4 = c(0, 3, 7, 7, 6, 5, 5,
5, 7, 7, 7, 3, 3, 11, 11, 9, 9, 9, 5, 5, 6, 2, 2, 5, 3, 3,
2, 2, 4, 4, 2, 3, 3, 4, 4, 2, 2, 3, 3, 5, 5, 3, 3, 3, 3,
3, 2, 2, 7, 7, 3, 3, 7, 7, 4, 4, 4, 7, 8, 8, 5, 5, 4, 4,
6, 6, 6, 1, 1, 3, 3, 3), Anz = c(2, 3, 7, 4, 6, 5, 3, 1,
7, 3, 1, 3, 1, 11, 4, 9, 1, 2, 5, 3, 6, 2, 2, 5, 3, 3, 2,
2, 4, 3, 2, 3, 2, 4, 1, 2, 2, 3, 2, 5, 3, 3, 3, 1, 3, 3,
2, 2, 7, 4, 3, 2, 7, 4, 4, 3, 1, 7, 8, 2, 5, 3, 4, 1, 6,
1, 2, 1, 1, 3, 3, 1)), row.names = c(NA, -72L), class = c("tbl_df",
"tbl", "data.frame"))
我的剧情代码:
g.barchart<- ggplot(d.data_agg, aes(x= as.Date(date, "%Y-%m-%d"), y=Anz, fill=Altersklassen_num, text=paste("Datum: ", format(as.Date(date),"%d.%m.%Y"), "<br><br>0- bis 49-Jährige: ", Altersklasse1,"<br>50- bis 64-Jährige: ", Altersklasse2,"<br>65- bis 79-Jährige: ", Altersklasse3,"<br>über 80-Jährige: ", Altersklasse4))) +
geom_bar(position="stack",stat="identity",width = 1.0)
g.barchart
fig <- ggplotly(g.barchart,tooltip = c("text"), dynamicTicks = TRUE) %>%
style(hoverinfo = c("text")) %>%
config(displayModeBar = T, locale = "de") %>%
layout(hoverlabel = list(align = "left", bgcolor = "#E5E8E8", font = list(size=14)),
legend = list(orientation = "h", x = 0.15, y = -0.15),
xaxis = list(showgrid = F, ticklen = 10,
tickval = NULL,
ticktext = NULL,
ticks = "outside",
tickmode = "array",
tickformat = '%e.%b',
ticktext = labels,
tickangle = 0,
title = "",
type = "date",
autorange = FALSE,
range = c(as.numeric(as.POSIXct("2020-10-30", format="%Y-%m-%d"))*1000,
as.numeric(as.POSIXct(k.DownDat, format="%Y-%m-%d"))*1000)),
yaxis = list(autorange = FALSE))
fig
尝试 complete
数据帧,然后 运行 ggplot
。在那之后,如果你 运行 ggplotly
,你将得到丢失的堆积条。
d.data_agg <- d.data_agg %>% complete(date, nesting(Altersklassen_num), fill = list(Anz=0))