import mysql.connector as sql
import pandas as pd
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
yhendus = sql.connect(host="193.40.238.6", user="dh19", password="dh19praktika", database="dh19_kais")
tunnused = ["liik", "linastusaasta", "kestus", "näitlejate arv", "peaosaliste arv"]
vastus = "jah"
while vastus.lower() == "jah":
print("Programm loob EV100 filmide andmete põhjal veebilehe.")
tunnus = input("Millise tunnuse alusel soovid filme võrrelda? [liik/linastusaasta/kestus/näitlejate arv/peaosaliste arv] ")
tunnus = tunnus.lower()
if tunnus not in tunnused:
print("Vali tunnus etteantud nimekirjast.")
exit()
if tunnus == "liik":
df = pd.read_sql("SELECT liik, COUNT(*) AS arv, GROUP_CONCAT(pealkiri) AS filmid FROM ev100filmid GROUP BY liik ORDER BY liik DESC", yhendus)
df[["liik", "arv"]].plot(kind="bar")
plt.xticks(range(len(df["liik"].values)), df["liik"].values)
plt.title("EV100 filmide jaotumine liigi järgi")
plt.savefig("liigijoonis.png", bbox_inches="tight")
plt.clf()
f = open("liigivordlus.html", "w")
f.write("
")
f.write(df.to_html())
f.write(""+"\n"+"
")
f.write("")
f.close()
elif tunnus == "linastusaasta":
df = pd.read_sql("SELECT aasta, COUNT(*) AS arv, GROUP_CONCAT(pealkiri) AS filmid FROM ev100filmid GROUP BY aasta", yhendus)
plt.pie(df.arv, labels=df.aasta, autopct="%1.1f%%")
plt.axis("equal")
plt.title("EV100 filmide jaotumine linastusaasta järgi")
plt.savefig("aastajoonis.png", bbox_inches="tight")
plt.clf()
f = open("aastavordlus.html", "w")
f.write("")
f.write(df.to_html())
f.write(""+"\n"+"
")
f.write("")
f.close()
elif tunnus == "kestus":
df = pd.read_sql("SELECT pealkiri, kestus AS kestus FROM ev100filmid GROUP BY pealkiri ORDER BY kestus DESC", yhendus)
df.plot(kind="bar")
plt.xticks(range(len(df["pealkiri"].values)), df["pealkiri"].values)
plt.title("EV100 filmide kestus minutites")
plt.savefig("ajajoonis.png", bbox_inches="tight")
plt.clf()
f = open("ajavordlus.html", "w")
f.write("")
f.write(df.to_html())
f.write(""+"\n"+"
")
f.write("")
f.close()
elif tunnus == "näitlejate arv":
df = pd.read_sql("SELECT pealkiri, osataitjad AS osatäitjaid FROM ev100filmid WHERE osataitjad > 0 GROUP BY pealkiri ORDER BY osataitjad DESC", yhendus)
plt.pie(df.osatäitjaid, labels=df.pealkiri, autopct="%1.1f%%")
plt.axis("equal")
plt.savefig("naitlejajoonis.png", bbox_inches="tight")
plt.clf()
f = open("naitlejavordlus.html", "w")
f.write("")
f.write(df.to_html())
f.write(""+"\n"+"
")
f.write("")
f.close()
elif tunnus == "peaosaliste arv":
df = pd.read_sql("SELECT pealkiri, peaosas AS peaosatäitjaid FROM ev100filmid WHERE peaosas > 0 GROUP BY pealkiri ORDER BY peaosas DESC", yhendus)
df.plot(kind="bar")
plt.xticks(range(len(df["pealkiri"].values)), df["pealkiri"].values)
plt.title("Peaosatäitjate arv EV100 filmides")
plt.savefig("peaosajoonis.png", bbox_inches="tight")
plt.clf()
f = open("peaosavordlus.html", "w")
f.write("")
f.write(df.to_html())
f.write(""+"\n"+"
")
f.write("")
f.close()
vastus = input("Kas soovid luua veel ühe veebilehe? [jah/ei] ")