Skip to content

Instantly share code, notes, and snippets.

@jakiki6
Created March 8, 2020 13:15
Show Gist options
  • Save jakiki6/f2704a0032419d64d4c1dffd235150e5 to your computer and use it in GitHub Desktop.
Save jakiki6/f2704a0032419d64d4c1dffd235150e5 to your computer and use it in GitHub Desktop.
import matplotlib.pyplot as plt
import random
import numpy as np
m = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
temperatur = [float(input("Temperatur " + m[i] + ": ")) for i in range(0, 12)]
niederschlag = [int(input("Niederschlag im " + m[i] + ": ")) for i in range(0, 12)]
name = input("Name: ")
cords = input("Koordinaten: ")
nn = input("Höhe: ") + "m ü.M."
sn = max(max(temperatur) * 2, max(niederschlag))
st = sn // 2
dt = 0
for i in temperatur:
dt += i
dt /= 12
dt = dt * 100 // 1 / 100
mn = 0
for i in niederschlag:
mn += i
fig, ax1 = plt.subplots()
ax1.set_xlabel('Monate')
ax1.set_ylabel('Temperatur (°C)', color="r")
ax1.plot(np.arange(0, 12), temperatur, color="r")
ax1.tick_params(axis='y', labelcolor="r")
ax1.set_yticks(ticks=[i for i in range(0, st + 10, 5)], minor=False)
ax2 = ax1.twinx()
ax2.set_ylabel('Niederschlag (mm)', color="b")
ax2.bar(height=niederschlag, x=[i for i in range(0, 12)], color="b")
ax2.tick_params(axis='y', labelcolor="b")
ax2.set_yticks(ticks=[i for i in range(0, sn + 20, 10)], minor=False)
ax1.set_zorder(ax2.get_zorder() + 1)
ax1.patch.set_visible(False)
plt.xticks([i for i in range(0, 12)])
ax1.set_xticklabels(m, fontdict=None, minor=False)
plt.text(0.75, 0.905, cords, fontsize=14, transform=plt.gcf().transFigure)
plt.text(0.1, 0.905, nn, fontsize=14, transform=plt.gcf().transFigure)
plt.text(0.1, 0.931, name, fontsize=14, transform=plt.gcf().transFigure)
ax1.text(-0.6, st + 2.5, "T = " + str(dt) + "°C", color="r")
ax1.text(-0.6, st + 1.2, "N = " + str(mn) + "mm", color="b")
fig.tight_layout()
plt.show(ax1)
fig.savefig("test.pdf",bbox_inches='tight')
with open("conf.txt", "w") as f:
f.write("\n".join([str(o) for o in temperatur] + [str(o) for o in niederschlag] + [name, cords, nn.replace("m ü.M.", "")]) + "\n")
@jakiki6
Copy link
Author

jakiki6 commented Mar 8, 2020

Reuse configuration: cat conf.txt | python3 generate.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment