Neben den Daten der Stadt Kiel, zu denen ich hier in unregelmäßigen Abständen Beispiele zur Visualisierung veröffentliche, gibt es im Internet selbstverständlich noch viel mehr Daten-Portale. In diesem Blog-Beitrag möchte ich den Datenbestand der FAO (Food and Agriculture Organisation of the United Nations) vorstellen. Ein Überblick dazu, bietet die Statistik-Seite der FAO.
Als Beispiel soll nachfolgend die Weizen-Produktion in Europa dienen. Den Datensatz kann man sich zum Download (als CSV-Datei) auf dieser Seite zusammenstellen lassen. Alternativ könnt Ihr die von mir verwendete CSV-Datei hier herunterladen.
#!/usr/bin/env python3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
csv_data = 'FAOSTAT_wheat_to.csv'
df = pd.read_csv(csv_data)
# print(df.head())
fig, ax = plt.subplots()
# drop not available (na) data
df_cleaned = df.dropna(how='all')
# Unsigned integer (0 to 65535)
df_years = df_cleaned['Year'].astype(np.uint16)
# Unsigned integer (0 to 4294967295)
df_values = df_cleaned['Value'].astype(np.uint32)
x = df_years.values
y = df_values.values
plt.title("Wheat in Europa (in t)", size="x-large")
plt.ylabel("Quantity", size="x-large")
plt.xlabel("Year", size="x-large")
plt.plot(y, "r*-", markersize=6, linewidth=1, color='g', label="Wheat")
plt.legend(loc=(0.1, 0.8))
# plain or scientific notation
ax.ticklabel_format(style='plain',axis='y', useOffset=False) # use style='sci' for scientific notation
ax.set_xticks(range(len(x)))
ax.set_xticklabels(x, rotation='vertical')
plt.show()
Wird der Code ausgeführt, führt dies zu folgender Grafik:
Der Code unterscheidet sich nicht wesentlich von meinen anderen — in diesem Blog vorgestellten — Beispielen. Eine Ausnahme bildet die Zeile
ax.ticklabel_format(style='plain',axis='y', useOffset=False)
Damit kann die Darstellung von Werten als wissenschaftliche Notation deaktiviert werden (mit: style='plain'
). Dies kann manchmal notwendig werden, da matplotlib ab einem bestimmten Wertebereich automatisch diese Notation verwendet.