带日期的matplotlib居中条形图

2024-04-23 23:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

为了得到x轴是日期的条形图,我正在做如下操作:

import numpy as np
import matplotlib.pyplot as plt
import datetime

x = [datetime.datetime(2010, 12, 1, 0, 0),
    datetime.datetime(2011, 1, 1, 0, 0),
    datetime.datetime(2011, 5, 1, 1, 0)]
y = [4, 9, 2]

ax = plt.subplot(111)
barWidth=20
ax.bar(x, y, width=barWidth)
ax.xaxis_date()

plt.show()

enter image description here

但是,绘图不是以x为中心的。如果以前使用ax.bar(x-bar width/2.,y,width=barWidth)来获取以x为中心的bar,那么当x轴的值是日期时,是否有方法获得相同的结果?


Tags: importnumpydatetimematplotlibasnpbarplt
1条回答
网友
1楼 · 发布于 2024-04-23 23:22:26

我想您需要align='center'方法的bar关键字。

对示例的细微更改:

import numpy as np
import matplotlib.pyplot as plt
import datetime

x = [datetime.datetime(2010, 12, 1, 0, 0),
    datetime.datetime(2011, 1, 1, 0, 0),
    datetime.datetime(2011, 5, 1, 1, 0)]
y = [4, 9, 2]

ax = plt.subplot(111)
barWidth=20
ax.bar(x, y, width=barWidth, align='center') #< added align keyword
ax.xaxis_date()

plt.savefig('baralign.png')
plt.show()

引出下图:

enter image description here

如果你知道去哪里找,这是一个非常直截了当的答案。matplotlib有大量的文档,开发人员为每个绘图方法提供a detailed description of the keyword arguments

相关问题 更多 >