У меня есть набор данных, состоящий из пар дата-значение.Я хочу построить их на гистограмме с конкретными датами на оси X.
Моя проблема в том, что matplotlib
распределяет xticks
по всему диапазону дат;а также наносит на график данные с использованием точек.
Все даты являются datetime
объектами.Вот пример набора данных:
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)]
Вот пример запускаемого кода с использованием 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()
РЕЗЮМЕ ВОПРОСА:
Моя ситуацияскорее, у меня есть готовый экземпляр Axes
(на который ссылается graph
в приведенном выше коде), и я хочу сделать следующее:
- Сделать
xticks
точными значениями даты.Я слышал о matplotlib.dates.DateLocator
, но я понятия не имею, как его создать, а затем связать его с конкретным Axes
объектом. - Получите более жесткий контроль над типом используемого графика (полоса, линия, точки и т. Д.)