您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Matplotlib需要仔细计时吗? (或者是否有标志显示绘图?)

5b51 2022/1/14 8:21:35 python 字数 4607 阅读 514 来源 www.jb51.cc/python

以下代码无法按预期工作:import matplotlib.pyplot as plt plt.plot(range(100000), '.') plt.draw() ax = plt.gca() lblx = ax.get_xticklabels() lblx[1]._text = 'hello!' ax.set_xticklabels(lblx) p

概述

以下代码无法按预期工作:

import matplotlib.pyplot as plt

plt.plot(range(100000),'.')
plt.draw()

ax = plt.gca()
lblx = ax.get_xticklabels()
lblx[1]._text = 'hello!'
ax.set_xticklabels(lblx)
plt.draw()
plt.show()

我得到下图:

enter image description here

我想原因是当调用get_xticklabels()时,自动xticklabels没有时间完全创建.事实上,通过添加plt.pause(1)

import matplotlib.pyplot as plt

plt.plot(range(100000),'.')
plt.draw()
plt.pause(1)

ax = plt.gca()
lblx = ax.get_xticklabels()
lblx[1]._text = 'hello!'
ax.set_xticklabels(lblx)
plt.draw()
plt.show()

会给出预期的

enter image description here

我对这种状态不满意(不得不手动插入延迟).我主要担心的是:我怎么知道需要等多少时间?当然这取决于数字元素的数量,机器强度等.

所以我的问题是:是否有一些标志知道matplotlib已经完成了所有元素的绘制?或者有更好的方法来做我正在做的事情?

plt.pause(1e-18)

这里的问题是plt.draw()调用plt.gcf().canvas.draw_idle().这意味着当有时间时,图形会在某个任意点绘制 – 因此_idle.

相反,您可能希望在您需要的代码中的特定点绘制图形.

plt.gcf().canvas.draw() 

完整代码

import matplotlib.pyplot as plt

plt.plot(range(100000),'.')
plt.gcf().canvas.draw()

ax = plt.gca()
lblx = ax.get_xticklabels()
lblx[1]._text = 'hello!'
ax.set_xticklabels(lblx)

plt.show()

总结

以上是编程之家为你收集整理的python – Matplotlib需要仔细计时吗? (或者是否有标志显示绘图?)全部内容,希望文章能够帮你解决python – Matplotlib需要仔细计时吗? (或者是否有标志显示绘图?)所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶