Compare commits
No commits in common. "0eb3bb6b918fd7567ff83b18262123ae6f4dbbbb" and "ddbb5e350593a170a6e20fb4a8807e1a43af7d26" have entirely different histories.
0eb3bb6b91
...
ddbb5e3505
@ -1,8 +1,8 @@
|
|||||||
main {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
flex-flow: row wrap;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
gap: 1em;
|
gap: 15px;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15,13 +15,16 @@ 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 {
|
||||||
|
|||||||
@ -6,14 +6,11 @@
|
|||||||
<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>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<main>
|
<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>
|
||||||
{{ image|safe }}
|
|
||||||
|
<div class="container">
|
||||||
|
<img src="{{ image }}"/>
|
||||||
{{ tables|safe }}
|
{{ tables|safe }}
|
||||||
</main>
|
</div>
|
||||||
</article>
|
|
||||||
|
|||||||
17
wsgi.py
17
wsgi.py
@ -1,3 +1,4 @@
|
|||||||
|
import base64
|
||||||
import datetime
|
import datetime
|
||||||
import io
|
import io
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
@ -10,6 +11,7 @@ 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
|
||||||
|
|
||||||
@ -82,7 +84,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
|
||||||
|
|
||||||
fig = plt.figure(dpi=300)
|
plt.figure(dpi=300)
|
||||||
|
|
||||||
# fill weekends
|
# fill weekends
|
||||||
max_date = max(data_dict.keys())
|
max_date = max(data_dict.keys())
|
||||||
@ -153,12 +155,15 @@ 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 SVG image
|
# Convert plot to PNG image
|
||||||
imgdata = io.StringIO()
|
pngImage = io.BytesIO()
|
||||||
fig.savefig(imgdata, format="svg")
|
FigureCanvas(plt.gcf()).print_png(pngImage)
|
||||||
svgImage.seek(0) # rewind the data
|
|
||||||
|
|
||||||
return svgImage.read()
|
# Encode PNG image to base64 string
|
||||||
|
pngImageB64String = "data:image/png;base64,"
|
||||||
|
pngImageB64String += base64.b64encode(pngImage.getvalue()).decode("utf8")
|
||||||
|
|
||||||
|
return pngImageB64String
|
||||||
|
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user