Add option to not fix lims in plot
This commit is contained in:
parent
dbf477ed17
commit
ef8cab6330
21
wsgi.py
21
wsgi.py
@ -96,6 +96,7 @@ def plot(
|
|||||||
total_targets: tuple[int, ...] = (1500, 2500, 3500),
|
total_targets: tuple[int, ...] = (1500, 2500, 3500),
|
||||||
alpha: float | None = None,
|
alpha: float | None = None,
|
||||||
landesbez_str: str | None = None,
|
landesbez_str: str | None = None,
|
||||||
|
fix_lims: bool = True,
|
||||||
) -> str:
|
) -> str:
|
||||||
fig = plt.figure(dpi=300)
|
fig = plt.figure(dpi=300)
|
||||||
|
|
||||||
@ -125,7 +126,7 @@ def plot(
|
|||||||
ls="--",
|
ls="--",
|
||||||
marker="o",
|
marker="o",
|
||||||
lw=1,
|
lw=1,
|
||||||
color="#e4004e" if bez is None else None,
|
color="#e4004e" if bez is None or not fix_lims else None,
|
||||||
markersize=4,
|
markersize=4,
|
||||||
label=bez if bez is not None else "Bundesweit",
|
label=bez if bez is not None else "Bundesweit",
|
||||||
)
|
)
|
||||||
@ -152,14 +153,15 @@ def plot(
|
|||||||
plt.title("Teilnahme an Digitaler Beschäftigtenbefragung")
|
plt.title("Teilnahme an Digitaler Beschäftigtenbefragung")
|
||||||
plt.ylabel("# Teilnahmen")
|
plt.ylabel("# Teilnahmen")
|
||||||
|
|
||||||
max_val = df.sum(axis=1).max().item()
|
if fix_lims:
|
||||||
|
max_val = df.sum(axis=1).max().item()
|
||||||
|
|
||||||
nearest_target = np.array(total_targets, dtype=np.float32) - max_val
|
nearest_target = np.array(total_targets, dtype=np.float32) - max_val
|
||||||
nearest_target[nearest_target <= 0] = np.inf
|
nearest_target[nearest_target <= 0] = np.inf
|
||||||
idx = np.argmin(nearest_target)
|
idx = np.argmin(nearest_target)
|
||||||
|
|
||||||
ceil_val = max(max_val, total_targets[idx])
|
ceil_val = max(max_val, total_targets[idx])
|
||||||
plt.ylim(0, ceil_val * 1.025)
|
plt.ylim(0, ceil_val * 1.025)
|
||||||
plt.legend()
|
plt.legend()
|
||||||
|
|
||||||
# use timezone offset to center tick labels
|
# use timezone offset to center tick labels
|
||||||
@ -184,8 +186,9 @@ def plot(
|
|||||||
sec_ax.set_ylabel("# Teilnahmen [% Erfolg]")
|
sec_ax.set_ylabel("# Teilnahmen [% Erfolg]")
|
||||||
sec_ax.yaxis.set_major_formatter(mtick.PercentFormatter())
|
sec_ax.yaxis.set_major_formatter(mtick.PercentFormatter())
|
||||||
|
|
||||||
for total_target in total_targets:
|
if fix_lims:
|
||||||
plt.axhline(y=total_target, color="#48a9be", linestyle="--")
|
for total_target in total_targets:
|
||||||
|
plt.axhline(y=total_target, color="#48a9be", linestyle="--")
|
||||||
|
|
||||||
plt.tight_layout()
|
plt.tight_layout()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user