Compare commits

..

2 Commits

Author SHA1 Message Date
Felix Blanke
0eb3bb6b91 Export plot to svg instead of png 2023-08-27 23:20:16 +02:00
Felix Blanke
0e16891961 Refactor CSS 2023-08-27 23:10:34 +02:00
3 changed files with 16 additions and 21 deletions

View File

@ -1,8 +1,8 @@
.container { main {
display: flex; display: flex;
flex-flow: row wrap; flex-flow: row wrap;
justify-content: space-around; justify-content: space-around;
gap: 15px; gap: 1em;
align-items: flex-start; align-items: flex-start;
} }
@ -15,16 +15,13 @@ a {
color: black; color: black;
} }
img {
max-width: 600px;
}
.dataframe { .dataframe {
border-collapse: collapse; border-collapse: collapse;
font-size: 0.9em; font-size: 0.9em;
font-family: sans-serif; font-family: sans-serif;
min-width: 400px; min-width: 400px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
flex-grow: 1;
} }
.dataframe thead tr { .dataframe thead tr {

View File

@ -6,11 +6,14 @@
<title>Digitale Beschäftigtenbefragung</title> <title>Digitale Beschäftigtenbefragung</title>
<article>
<header>
<p>Daten abgerufen: {{ timestamp }}</p> <p>Daten abgerufen: {{ timestamp }}</p>
<p><i>Hinweis:</i> Die Daten entstammen der <a href="https://zusammen-geht-mehr.verdi.de/beschaeftigtenbefragung">Karte der digitalen Beschäftigtenbefragung</a> und sind dort nur für die ver.di-Bezirke auf Bezirksebene aufgelöst, bei denen TVStud auch als Schwerpunkt angegeben ist.</p> <p><i>Hinweis:</i> Die Daten entstammen der <a href="https://zusammen-geht-mehr.verdi.de/beschaeftigtenbefragung">Karte der digitalen Beschäftigtenbefragung</a> und sind dort nur für die ver.di-Bezirke auf Bezirksebene aufgelöst, bei denen TVStud auch als Schwerpunkt angegeben ist.</p>
</header>
<div class="container"> <main>
<img src="{{ image }}"/> {{ image|safe }}
{{ tables|safe }} {{ tables|safe }}
</div> </main>
</article>

17
wsgi.py
View File

@ -1,4 +1,3 @@
import base64
import datetime import datetime
import io import io
from itertools import chain from itertools import chain
@ -11,7 +10,6 @@ import numpy as np
import pandas as pd import pandas as pd
from flask import Flask, render_template, request from flask import Flask, render_template, request
from flask_caching import Cache from flask_caching import Cache
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from download_digital import construct_dataframe, get_bez_data from download_digital import construct_dataframe, get_bez_data
@ -84,7 +82,7 @@ def plot(
sum_val = current_df[["Digitale Befragung"]].sum().iloc[0] sum_val = current_df[["Digitale Befragung"]].sum().iloc[0]
df.loc[datetime.datetime.now()] = sum_val df.loc[datetime.datetime.now()] = sum_val
plt.figure(dpi=300) fig = plt.figure(dpi=300)
# fill weekends # fill weekends
max_date = max(data_dict.keys()) max_date = max(data_dict.keys())
@ -155,15 +153,12 @@ def plot(
plt.axhline(y=total_target, color="#48a9be", linestyle="--") plt.axhline(y=total_target, color="#48a9be", linestyle="--")
plt.tight_layout() plt.tight_layout()
# Convert plot to PNG image # Convert plot to SVG image
pngImage = io.BytesIO() imgdata = io.StringIO()
FigureCanvas(plt.gcf()).print_png(pngImage) fig.savefig(imgdata, format="svg")
svgImage.seek(0) # rewind the data
# Encode PNG image to base64 string return svgImage.read()
pngImageB64String = "data:image/png;base64,"
pngImageB64String += base64.b64encode(pngImage.getvalue()).decode("utf8")
return pngImageB64String
@app.route("/") @app.route("/")