我有一个由日期-数值对组成的数据集。我想在条形图中将它们绘制出来,并在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
对象相关联。 - 更精细地控制所使用的图形类型(柱形、线性、点等)。
matplotlib.pyplot
中的函数并将 wx 相关内容排除在外,则可能会使事情变得更容易。 - David Zmatplotlib
+pyplot
,而不是matplotlib
+wx
。 - Kit