gpt4 book ai didi

python - 如何在 python 程序的简单 UI 中显示实时图形?

转载 作者:IT老高 更新时间:2023-10-28 21:00:30 26 4
gpt4 key购买 nike

我有一个复杂的算法来更新存储在数组中的 3 个直方图。我想调试我的算法,所以我想在用户界面中将数组显示为直方图。最简单的方法是什么。 (快速应用开发比优化代码更重要。)

我有一些使用 Qt(C++)的经验和一些使用 matplotlib 的经验。

(我将把这个问题留一两天,因为如果没有更多我没有的经验,我很难评估解决方案。希望社区的投票将有助于选择最佳答案.)

最佳答案

编辑:如今,使用 matplotlib.animation 更容易更好:

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


def animate(frameno):
x = mu + sigma * np.random.randn(10000)
n, _ = np.histogram(x, bins, normed=True)
for rect, h in zip(patches, n):
rect.set_height(h)
return patches

mu, sigma = 100, 15
fig, ax = plt.subplots()
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='green', alpha=0.75)

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

有一个制作动画图的例子here .在此示例的基础上,您可以尝试以下操作:

import numpy as np
import matplotlib.pyplot as plt

plt.ion()
mu, sigma = 100, 15
fig = plt.figure()
x = mu + sigma*np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='green', alpha=0.75)
for i in range(50):
x = mu + sigma*np.random.randn(10000)
n, bins = np.histogram(x, bins, normed=True)
for rect,h in zip(patches,n):
rect.set_height(h)
fig.canvas.draw()

我可以通过这种方式每秒获得大约 14 帧,而使用代码 I first posted 每秒可以获得 4 帧。 .诀窍是避免要求 matplotlib 绘制完整的图形。而是调用 plt.hist 一次,然后操作 patches 中现有的 matplotlib.patches.Rectangle 来更新直方图,然后调用fig.canvas.draw() 使更新可见。

关于python - 如何在 python 程序的简单 UI 中显示实时图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4129697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com