用每月d控制matplotlib中的条形图宽度

2024-05-19 02:28:55 发布

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

当我用条形图绘制每月采样的数据时,它们的宽度非常小。如果将X轴次要定位器设置为day locator(),则可以看到条形图的宽度调整为1天,但我希望它们能填充整个月。

我试图将minor ticks locator设置为MonthLocator(),但没有效果。

[编辑]

也许一个例子会更明确,这里有一个ipython -pylab的例子来说明我的意思:

x = [datetime.datetime(2008, 1, 1, 0, 0),
    datetime.datetime(2008, 2, 1, 0, 0),
    datetime.datetime(2008, 3, 1, 0, 0),
    datetime.datetime(2008, 4, 1, 0, 0),
    datetime.datetime(2008, 5, 1, 0, 0),
    datetime.datetime(2008, 6, 1, 0, 0),
    datetime.datetime(2008, 7, 1, 0, 0),
    datetime.datetime(2008, 8, 1, 0, 0),
    datetime.datetime(2008, 9, 1, 0, 0),
    datetime.datetime(2008, 10, 1, 0, 0),
    datetime.datetime(2008, 11, 1, 0, 0),
    datetime.datetime(2008, 12, 1, 0, 0)]

y = cos(numpy.arange(12) * 2)

bar(x, y)

这是12个2像素宽的条形图,我希望它们更宽,并且每个月都在扩展。


Tags: 数据编辑datetime宽度ipython绘制例子条形图
1条回答
网友
1楼 · 发布于 2024-05-19 02:28:55

只需使用width关键字参数:

bar(x, y, width=30)

或者,由于不同的月份有不同的天数,为了让它看起来更好,您可以使用一个序列:

bar(x, y, width=[(x[j+1]-x[j]).days for j in range(len(x)-1)] + [30])

相关问题 更多 >

    热门问题