Ich verwende Matplotlib und Pyplot, um einige Grafiken aus einer CSV-Datei zu erstellen. Ich kann Liniendiagramme erstellen, kein Problem, aber ich habe viel Mühe beim Erstellen eines Balkendiagramms.Erstellen Sie ein Balkendiagramm mit Datumsangaben
Ich bezog mich auf diesen Pfosten matplotlib bar chart with dates unter einigen anderen, die schienen, wie sie meine Aufgabe leicht erreichen sollten, aber ich kann es nicht mit meiner Liste der Datumtimes arbeiten lassen.
den genauen Code aus dem obigen Beitrag Laufen erzeugt die erwartete Graph, aber wenn ich unseren ihren x- und y-Wert für meine eigenen aus meiner CSV-Datei austauschen:
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from datetime import datetime
import csv
columns="YEAR,MONTH,DAY,HOUR,PREC,PET,Q,UZTWC,UZFWC,LZTWC,LZFPC,LZFSC,ADIMC,AET"
data_file="FFANA_000.csv"
list_of_datetimes = []
skipped_header = False
with open(data_file, 'rt') as f:
reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
for row in reader:
if skipped_header:
date_string = "%s/%s/%s %s" % (row[0].strip(), row[1].strip(), row[2].strip(), row[3].strip())
dt = datetime.strptime(date_string, "%Y/%m/%d %H")
list_of_datetimes.append(dt)
skipped_header = True
UZTWC = np.genfromtxt(data_file, delimiter=',', names=columns, usecols=("UZTWC"))
x = list_of_datetimes
y = UZTWC
ax = plt.subplot(111)
ax.bar(x, y, width=10)
ax.xaxis_date()
plt.show()
Lauf dies gibt den Fehler:
Traceback (most recent call last):
File "graph.py", line 151, in <module>
ax.bar(x, y, width=10)
File "C:\Users\rbanks\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\__init__.py", line 1812, in inner
return func(ax, *args, **kwargs)
File "C:\Users\rbanks\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\axes\_axes.py", line 2118, in bar
if h < 0:
TypeError: unorderable types: numpy.ndarray() < int()
Wenn ich ausführen, um die Datetime numpy-Konvertierung, die zum Plotten meiner Liniendiagramme notwendig ist:
list_of_datetimes = matplotlib.dates.date2num(list_of_datetimes)
Ich bekomme den gleichen Fehler.
Kann jemand Einblick geben?
Auszug aus FFANA_000.csv:
%YEAR,MO,DAY,HR,PREC(MM/DT),ET(MM/DT),Q(CMS), UZTWC(MM),UZFWC(MM),LZTWC(MM),LZFPC(MM),LZFSC(MM),ADIMC(MM), ET(MM/DT)
2012, 5, 1, 0, 0.000, 1.250, 0.003, 2.928, 0.000, 3.335, 4.806, 0.000, 6.669, 1.042
2012, 5, 1, 6, 0.000, 1.250, 0.003, 2.449, 0.000, 3.156, 4.798, 0.000, 6.312, 0.987
2012, 5, 1, 12, 0.000, 1.250, 0.003, 2.048, 0.000, 2.970, 4.789, 0.000, 5.940, 0.929
2012, 5, 1, 18, 0.000, 1.250, 0.003, 1.713, 0.000, 2.782, 4.781, 0.000, 5.564, 0.869
2012, 5, 2, 0, 0.000, 1.250, 0.003, 1.433, 0.000, 2.596, 4.772, 0.000, 5.192, 0.809
2012, 5, 2, 6, 0.000, 1.250, 0.003, 1.199, 0.000, 2.414, 4.764, 0.000, 4.829, 0.750
2012, 5, 2, 12, 0.000, 1.250, 0.003, 1.003, 0.000, 2.239, 4.756, 0.000, 4.478, 0.693
2012, 5, 2, 18, 0.000, 1.250, 0.003, 0.839, 0.000, 2.072, 4.747, 0.000, 4.144, 0.638
2012, 5, 3, 0, 0.000, 1.250, 0.003, 0.702,
Können Sie einige Beispielzeilen aus Ihrer Datei angeben? –
@MaximilianPeters Bearbeitete ursprüngliche Frage –