Mein Ziel ist es, ein Diagramm (mit korrekten XY-Labels und Legende) mit Daten von Worldbank API bei GUI TKinter zu erstellen.Datum und Legende werden bei MatplotLib nicht richtig angezeigt
Ich habe mit Problemen wie die X-Label zeigt Nummer statt Jahr, und die Legende nicht angezeigt.
Hat jemand die Lösung für diese? Hier
ist der Code:
from tkinter import *
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import wbdata
import pandas
import datetime
class App(Tk):
def __init__(self):
Tk.__init__(self)
fig_population = Figure(figsize = (7.5, 4.5), dpi = 100)
addsubplot_population = fig_population.add_subplot(111)
period_population = (datetime.datetime(2010, 1, 1), datetime.datetime(2016, 7, 23))
countries_population = ["USA","GBR"]
indicators_population = {'SP.POP.TOTL':'population'}
df_population = wbdata.get_dataframe(indicators_population, country = countries_population, data_date = period_population)
dfu_population = df_population.unstack(level = 0)
x_population = dfu_population.index
y_population = dfu_population.population
addsubplot_population.plot(x_population, y_population)
addsubplot_population.legend(loc = 'best')
addsubplot_population.set_title('Population')
addsubplot_population.set_xlabel('Time')
addsubplot_population.set_ylabel('Population')
canvas_population = FigureCanvasTkAgg(fig_population, self)
canvas_population.show()
canvas_population.get_tk_widget().pack(side = TOP, fill = BOTH, expand = False)
if __name__ == "__main__":
app = App()
app.geometry("800x600+51+51")
app.title("World Bank")
app.mainloop()
Es funktioniert! Vielen Dank für die Hilfe. Eine Frage: Müssen wir den Datenrahmen-Indextyp für jedes Mal aktualisieren, wenn wir mit dem Datum arbeiten? – Fxs7576