【发布时间】:2016-06-12 12:43:27
【问题描述】:
我试图让我的图表的刻度标签完全显示,但我没有得到想要的结果,尽管我很努力。
如果我只使用autofmt_xdate(),日期会正确显示,但并非针对每个绘制的数据点;但是,如果我通过将 x 由 datetime 对象传递给 xtick() 来强制显示我的 x 刻度标签,它似乎只显示年份。
fig1 = plt.figure(1)
# x is a list of datetime objects
plt.title('Portfolio Instruments')
plt.subplot(111)
plt.plot(x, y)
plt.xticks(fontsize='small')
plt.yticks([i * 5 for i in range(0, 15)])
fig1.autofmt_xdate()
plt.show()
我的错误在哪里?没找到。
问题
如何绘制 x 的所有数据点并将其格式化以显示我正在使用 autofmt_xdate() 传递图表的整个日期时间对象?
我有一个日期时间对象列表,我想将其作为绘图的 x 值传递。
【问题讨论】:
-
如果您事先知道数据点的数量,或者如果始终存在相同数量的数据,您可以将 xticks 设置为等于某个数字。如果有一个更简单的例子给你同样的问题,那么给出更具体的答案会更容易。
-
但这就是我已经在做的事情了,afaik,当我将列表
x传递给xticks()时?我有已知数量的数据点。 -
所以我认为
autofmt_xdate看到传递给xticks()的日期时间对象并转换它们,就像以前一样。不是这种情况。唯一的区别是我强制图表在 x 轴上显示所有 x 刻度标签。 -
我已经简化了上面的代码。
-
在此处查看我的答案以获得另一种选择:stackoverflow.com/questions/39714724/… 我不确定在此处添加它是否可以。由于交叉发布。干杯
标签: python matplotlib