gpt4 book ai didi

python - 如何用不同的数据更新多个不同的数字

转载 作者:太空宇宙 更新时间:2023-11-03 19:40:29 24 4
gpt4 key购买 nike

我认为问这个问题可能很愚蠢,但我在谷歌上找不到任何匹配的解决方案来解决我的问题。希望有人能帮忙。

简单地说,我想在同一个图上绘制不同的函数,而不是子图,因为我发现的大多数在线解决方案都使用子图来执行此操作。我的目的是为了更好地比较不同的数据线位于同一图形相同的图上,但具有不同的颜色和不同的图例。我有两个图形,因为第二个图形只是具有相同想法的其他图形。

我尝试使用以下代码。但每次循环时,子图都会被覆盖。我不想删除旧行。我希望每个循环分别更新图 1 和图 2,而不删除以前的数据行。

    fig1 = plt.figure(1)
fig2 = plt.figure(2)
for diffSteps,listpair in fixed_table_plots.items():
ax1 = fig1.add_subplot(1,1,1)
ax1.scatter(listpair[0],listpair[1],s=2000,label="error_step_"+str(diffTableSteps))
ax1.legend()
plt.show()

ax2 = fig2.add_subplot(1,1,1)
accuracy_bw = [x - math.log(y,2) for x,y in zip(listpair[0],listpair[1])]
ax2.scatter(listpair[0],accuracy_bw,s=200,label="accuracy bw_step_"+str(diffTableSteps))
ax2.set_xlabel("input int bw")
ax2.set_ylabel("total bw accuracy")
ax2.legend()
plt.show()

非常感谢任何帮助!

更新:

    for diffSteps,listpair in fixed_table_plots.items():
plt.figure(1)
ax1.scatter(listpair[0],listpair[1],s=2000,label="error_step_"+str(diffTableSteps))
ax1.legend()

plt.figure(2)
accuracy_bw = [x - math.log(y,2) for x,y in zip(listpair[0],listpair[1])]
ax2.scatter(listpair[0],accuracy_bw,s=200,label="accuracy bw_step_"+str(diffTableSteps))
ax2.set_xlabel("input int bw")
ax2.set_ylabel("total bw accuracy")

这对我来说效果很好,唯一的问题是 plt.show() 不能在中间调用。有没有办法动态显示图?重新激活剧情也感觉很奇怪。请告诉我这是否是一个好方法...

谢谢!

最佳答案

这个问题类似于How to keep the previous plot and not clear the figure after calling plt.show() without simply repeating the call?但是,该链接的帖子是关于更新单个数字的,而您询问的是多个数字。我认为您将能够将以下最小示例改编为您的代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi)

fig1 = plt.figure()
fig2 = plt.figure()
plt.close(fig1)
plt.close(fig2)

for i in range(3):

plt.figure()
fm = plt.get_current_fig_manager()
fm.canvas.figure = fig1
fig1.canvas = fm.canvas
plt.plot(x, np.sin(x) + i)

plt.figure()
fm = plt.get_current_fig_manager()
fm.canvas.figure = fig2
fig2.canvas = fm.canvas
plt.plot(x, np.cos(x) + i)

plt.show()
plt.close()

关于python - 如何用不同的数据更新多个不同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60460146/

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