Mam zestaw danych składający się z par daty i waluty. Chcę je wykreślić na wykresie słupkowym z określonymi datami na osi X.Jak wykreślić dane w określonych datach na osi X przy użyciu matplotlib
Mój problem polega na tym, że matplotlib
dystrybuuje numer xticks
w całym zakresie dat; a także rysuje dane za pomocą punktów.
Daty to wszystkie obiekty datetime
. Oto próbka zbiorze:
data = [(DT.datetime.strptime('2010-02-05', "%Y-%m-%d"), 123),
(DT.datetime.strptime('2010-02-19', "%Y-%m-%d"), 678),
(DT.datetime.strptime('2010-03-05', "%Y-%m-%d"), 987),
(DT.datetime.strptime('2010-03-19', "%Y-%m-%d"), 345)]
tutaj jest runnable przykładowy kod korzystania pyplot
import datetime as DT
from matplotlib import pyplot as plt
data = [(DT.datetime.strptime('2010-02-05', "%Y-%m-%d"), 123),
(DT.datetime.strptime('2010-02-19', "%Y-%m-%d"), 678),
(DT.datetime.strptime('2010-03-05', "%Y-%m-%d"), 987),
(DT.datetime.strptime('2010-03-19', "%Y-%m-%d"), 345)]
x = [date for (date, value) in data]
y = [value for (date, value) in data]
fig = plt.figure()
graph = fig.add_subplot(111)
graph.plot_date(x,y)
plt.show()
PYTANIE STRESZCZENIE:
Moja sytuacja jest bardziej podobny Mam Axes
instancja gotowy (określany przez w powyższym kodzie) i chcę wykonać następujące czynności:
- Ustaw wartość
xticks
zgodnie z dokładnymi wartościami dat. Słyszałem omatplotlib.dates.DateLocator
, ale nie mam pojęcia, jak utworzyć, a następnie skojarzyć go z konkretnym obiektemAxes
. - uzyskać ściślejszą kontrolę nad typem wykresu używanej (bar, linii, punktów, itd.)
Just a wskazówka: ponieważ Twoje pytanie jest naprawdę czysto około matplotlib i nie ma nic konkretnego do wxWidgets, że to może ułatwić Jeśli zmienia twój przykład, aby użyć funkcji z 'matplotlib.pyplot' i zostawić z niego zawartość WX. –
@David: Naprawiono. Dzięki, zdałem sobie sprawę, że może być więcej ludzi, którzy potrafią przeczytać 'matplotlib' +' pyplot' lepiej niż 'matplotlib' +' wx' – Kit