Dateiverarbeitung, Listen + plotten
Verfasst: Donnerstag 17. Dezember 2020, 08:35
Hallo,
ich versuche mich ein wenig ins Programmieren, mit Python, einzuarbeiten.
Aktuell will ich ein paar Grafiken zu Covid19, Ländervergleich ... zu erstellen.
Dazu verwende ich eine Datei von hier: https://covid.ourworldindata.org/data/o ... d-data.csv
Es funktioniert soweit wie gedacht, auch wenn ich verschiedene Länder einzeln auswähle. Sobald ich aber die if Abfrage für zwei Länder verwenden will bekomme ich beim Plotten folgende Fehlermeldung:
File "/usr/lib/python3/dist-packages/matplotlib/axes/_axes.py", line 1743, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 273, in __call__
yield from self._plot_args(this, kwargs)
File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 399, in _plot_args
raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (324,) and (319,)
Ich habe mir die Listen auch schon mal in Datei schreiben lassen und sie beginnen alle mit 0.
Das Problem wird sich sicher mit OO umgehen/lösen aber ich möchte gerne verstehen wo mein Fehler hier liegt, wie ich ihn finde.
...weiter if/else für Zellen in der Zeile
damit kommt es beim Plotten dann zu Fehlern, auch wenn ich das Ersetzen leerer Zellen wie im ersten Fall (Germany) verwende.
Danke Maik
PS: mein erster Post ist nach Vorschau+Absenden irgendwie im Datennirwana verschwunden.
ich versuche mich ein wenig ins Programmieren, mit Python, einzuarbeiten.
Aktuell will ich ein paar Grafiken zu Covid19, Ländervergleich ... zu erstellen.
Dazu verwende ich eine Datei von hier: https://covid.ourworldindata.org/data/o ... d-data.csv
Es funktioniert soweit wie gedacht, auch wenn ich verschiedene Länder einzeln auswähle. Sobald ich aber die if Abfrage für zwei Länder verwenden will bekomme ich beim Plotten folgende Fehlermeldung:
File "/usr/lib/python3/dist-packages/matplotlib/axes/_axes.py", line 1743, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 273, in __call__
yield from self._plot_args(this, kwargs)
File "/usr/lib/python3/dist-packages/matplotlib/axes/_base.py", line 399, in _plot_args
raise ValueError(f"x and y must have same first dimension, but "
ValueError: x and y must have same first dimension, but have shapes (324,) and (319,)
Ich habe mir die Listen auch schon mal in Datei schreiben lassen und sie beginnen alle mit 0.
Das Problem wird sich sicher mit OO umgehen/lösen aber ich möchte gerne verstehen wo mein Fehler hier liegt, wie ich ihn finde.
Code: Alles auswählen
with open('alles.csv') as file:
for line in file:
line_splitted = line.strip().split(",") #strip = Leerzeichen am Anfang und Ende weg
if line_splitted[2] == 'Germany':
dat.append(str(line_splitted[3]))
if line_splitted[4] == '':
deuf.append(0)
else:
deuf.append(float(line_splitted[4]))
Code: Alles auswählen
if line_splitted[2] == 'Sweden':
swf.append(float(line_splitted[4]))
Code: Alles auswählen
fig, alle = plt.subplots(1, 4)
fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.3, hspace=0.3)
alle[0].set_title('Fälle')
alle[0].plot(dat, deuf, color = 'green')
alle[0].plot(dat, swf, color = 'blue')
PS: mein erster Post ist nach Vorschau+Absenden irgendwie im Datennirwana verschwunden.
