3 / charts.py
Corin1998's picture
Upload 17 files
5b82238 verified
import io, base64
import matplotlib.pyplot as plt
def _b64(fig):
buf = io.BytesIO()
fig.savefig(buf, format="png", bbox_inches="tight")
plt.close(fig)
return "data:image/png;base64," + base64.b64encode(buf.getvalue()).decode("utf-8")
def line_chart_base64(xs, ys, xlabel="", ylabel="", title=""):
fig, ax = plt.subplots()
ax.plot(xs, ys)
ax.set(xlabel=xlabel, ylabel=ylabel, title=title)
return _b64(fig)
def materiality_base64(labels, x_vals, y_vals, title="Materiality Matrix"):
fig, ax = plt.subplots()
ax.scatter(x_vals, y_vals)
for lbl, x, y in zip(labels, x_vals, y_vals):
ax.annotate(lbl, (x, y), xytext=(5,5), textcoords="offset points")
ax.set(xlabel="Stakeholder Importance", ylabel="Business Impact", title=title)
ax.grid(True, alpha=0.3)
return _b64(fig)