Compare commits
3 Commits
40c30fdde8
...
387b976f81
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
387b976f81 | ||
|
|
9b17bafb97 | ||
|
|
d2d157c479 |
19
wsgi.py
19
wsgi.py
@ -82,11 +82,12 @@ def create_plot_df(
|
||||
data_dict[key] = df["Digitale Befragung"]
|
||||
|
||||
df = pd.DataFrame(data=data_dict).T
|
||||
max_date = df.index.max()
|
||||
|
||||
df.index = df.index.astype("datetime64[ns]") + pd.DateOffset(hours=10)
|
||||
|
||||
df = df.reindex(
|
||||
pd.date_range(start="2023-08-15", end=curr_datetime) + pd.DateOffset(hours=10)
|
||||
pd.date_range(start="2023-08-15", end=max_date) + pd.DateOffset(hours=10)
|
||||
)
|
||||
|
||||
if current_df is not None:
|
||||
@ -104,16 +105,20 @@ def create_plot_df(
|
||||
|
||||
|
||||
def plot(
|
||||
curr_datetime,
|
||||
df: pd.DataFrame,
|
||||
annotate_current: bool = False,
|
||||
total_targets: tuple[int, ...] = (1500, 2500, 3500),
|
||||
alpha: float | None = None,
|
||||
landesbez_str: str | None = None,
|
||||
fix_lims: bool = True,
|
||||
max_shading_date = None,
|
||||
) -> str:
|
||||
fig = plt.figure(dpi=300)
|
||||
|
||||
if fix_lims:
|
||||
for total_target in total_targets:
|
||||
plt.axhline(y=total_target, color="#48a9be", linestyle="--")
|
||||
|
||||
for bez in landesbez_str:
|
||||
series = df.sum(axis=1) if bez is None else df[bez]
|
||||
plot_df = series.to_frame("Digitale Befragung").replace(0, np.nan)
|
||||
@ -193,15 +198,12 @@ def plot(
|
||||
sec_ax.set_ylabel("# Teilnahmen [% Erfolg]")
|
||||
sec_ax.yaxis.set_major_formatter(mtick.PercentFormatter())
|
||||
|
||||
if fix_lims:
|
||||
for total_target in total_targets:
|
||||
plt.axhline(y=total_target, color="#48a9be", linestyle="--")
|
||||
|
||||
xlim = plt.xlim()
|
||||
|
||||
# fill weekends
|
||||
max_date = curr_datetime + datetime.timedelta(days=3)
|
||||
days = pd.date_range(start="2023-08-14", end=max_date)
|
||||
if max_shading_date is None:
|
||||
max_shading_date = df.index.max() + datetime.timedelta(days=3)
|
||||
days = pd.date_range(start="2023-08-14", end=max_shading_date)
|
||||
for idx, day in enumerate(days[:-1]):
|
||||
if day.weekday() >= 5:
|
||||
plt.gca().axvspan(days[idx], days[idx + 1], alpha=0.2, color="gray")
|
||||
@ -262,7 +264,6 @@ def create_fig(
|
||||
]
|
||||
return (
|
||||
plot(
|
||||
curr_datetime,
|
||||
plot_df,
|
||||
annotate_current=annotate_current,
|
||||
landesbez_str=landesbez_strs,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user