使用matplotlib pyplot绘制实时饼图

时间:2018-10-12 13:33:05

标签: python matplotlib

代码:

import matplotlib.pyplot as plt
from time import sleep
for i in range(100):
    plt.pie([100-i,i])
    sleep(1)
    plt.show()

enter image description here

我的代码存在问题: -每当plt.pie()的值发生变化并绘制饼图时,for循环的执行似乎就会停止,我必须关闭饼图窗口才能恢复到for循环的执行。

我想做什么: -plt.pie()显示其值的实时更改,而不会暂停循环的执行。

谢谢。

编辑:找到解决方案。

import matplotlib.pyplot as plt
from time import sleep
for i in range(100):
   plt.pie([100-i, i])
   plt.pause(.001)
   plt.draw()
   sleep(1)

plt.show()是阻塞函数,因此代替使用plt.draw()和plt.pause(),现在它可以正常工作了。

如果遇到任何问题,请添加其他解决方案。再次感谢你。

2 个答案:

答案 0 :(得分:0)

plt.close()添加到for循环

import matplotlib.pyplot as plt
from time import sleep
for i in range(100):
    plt.pie([100-i,i])
    sleep(1)
    plt.show()
    plt.close()

答案 1 :(得分:0)

解决了。

import matplotlib.pyplot as plt
from time import sleep
for i in range(100):
   plt.pie([100-i, i])
   plt.pause(.001)
   plt.draw()
   sleep(1)

plt.show()是阻止功能,因此将plt.draw()plt.pause()一起使用,现在它可以正常工作了。