adjust ticks date evenly for bar plots + delete 100% et 0% bar label (#2)
This commit is contained in:
parent
7169a6f673
commit
0bbd3a150c
22
drees.py
22
drees.py
@ -506,35 +506,25 @@ def plot_bar_vaccine_status_distribution_by_age_field(
|
|||||||
"""
|
"""
|
||||||
np_vac_distri, np_unvac_distri = get_vaccine_status_distribution(np_data)
|
np_vac_distri, np_unvac_distri = get_vaccine_status_distribution(np_data)
|
||||||
# adjust the fig size to display correctly bars and labels
|
# adjust the fig size to display correctly bars and labels
|
||||||
fig, ax = get_plot_fig(figsize=(22, 8))
|
fig, ax = get_plot_fig(figsize=(22, 8), locator=md.WeekdayLocator())
|
||||||
|
|
||||||
for idx_date in range(len(np_date)):
|
for idx_date, date in enumerate(np_date):
|
||||||
vac_percent = np.round(
|
vac_percent = np.round(
|
||||||
np_vac_distri[idx_date, age_group.value, field.value] * 100, 2
|
np_vac_distri[idx_date, age_group.value, field.value] * 100, 2
|
||||||
)
|
)
|
||||||
unvac_percent = np.round(
|
unvac_percent = np.round(
|
||||||
np_unvac_distri[idx_date, age_group.value, field.value] * 100, 2
|
np_unvac_distri[idx_date, age_group.value, field.value] * 100, 2
|
||||||
)
|
)
|
||||||
bar_vac = ax.bar(idx_date, vac_percent, color="b", label="Vaccinés")
|
bar_vac = ax.bar(date, vac_percent, color="b", label="Vaccinés")
|
||||||
ax.bar(
|
ax.bar(date, unvac_percent, bottom=vac_percent, color="r", label="Non vaccinés")
|
||||||
idx_date, unvac_percent, bottom=vac_percent, color="r", label="Non vaccinés"
|
if vac_percent not in (0, 100):
|
||||||
)
|
|
||||||
ax.bar_label(
|
ax.bar_label(
|
||||||
bar_vac, label_type="edge", color="black", fontsize="7", fmt="%.0f"
|
bar_vac, label_type="edge", color="black", fontsize="6.5", fmt="%.0f"
|
||||||
)
|
)
|
||||||
ax.set_ylim(top=105) # to display 100% label
|
|
||||||
|
|
||||||
ax.set_ylabel("%")
|
ax.set_ylabel("%")
|
||||||
ax.set_title(f"{age_group.label} - {field.label}")
|
ax.set_title(f"{age_group.label} - {field.label}")
|
||||||
|
|
||||||
# avoid displaying all dates
|
|
||||||
ax.set(
|
|
||||||
xticks=range(len(np_date)),
|
|
||||||
xticklabels=[
|
|
||||||
d.strftime(DATE_FORMAT) if idx % 4 == 0 else ""
|
|
||||||
for idx, d in enumerate(np_date.astype(dt))
|
|
||||||
],
|
|
||||||
)
|
|
||||||
plt.legend(["Vaccinés", "Non vaccinés"], loc="upper right", frameon=True)
|
plt.legend(["Vaccinés", "Non vaccinés"], loc="upper right", frameon=True)
|
||||||
|
|
||||||
save_and_close_fig(
|
save_and_close_fig(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user