Matplotlib - 更新具有正值和负值的条形图

时间:2016-11-23 01:08:45

标签: python matplotlib tkinter

我正在使用this answer中描述的方法来动态更新条形图。但是,我想要的条形图应该显示来自零点而不是图形底部的值。这是我的条形码初始化代码:

oxBar = aBar.bar(0, 200, bottom=-100, width=1)

我希望能够从零点积极和消极地更新我的图表。但是,使用上面链接中的方法,我只能从图的底部而不是零点到达高度。例如,输入-50应该从0到-50绘制条形图,而是将条形图从-100绘制到-50。

1 个答案:

答案 0 :(得分:1)

Matplotlib默认情况下自动调整图表,但您可以将ylim设置为具有恒定的大小/高度,然后0可以始终位于中间位置。

实施例

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import random

def animate(frameno):
    x = random.randint(-200, 200)
    n = [x, -x]

    for rect, h in zip(rects, n):
        rect.set_height(h)

    return rects

# --- init ---

fig, ax = plt.subplots()
rects = plt.bar([0,1], [0,0], width=1)
plt.ylim([-200, 200])

ani = animation.FuncAnimation(fig, animate, blit=True,
                              interval=100, frames=100, repeat=False)
plt.show()

enter image description here