У меня есть набор данных, состоящий из пар значений даты. Я хочу построить их на гистограмме с конкретными датами на оси х.
Моя проблема заключается в том, что 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
. - Получить более жесткий контроль над типом используемого графика (строка, строка, точки и т.д.)