我正在创建一些数据的violinplot,然后我将一个带有单个数据点(示例中的红点)的散点图渲染为三个子图。你知道吗
由于violinplot的生成相对耗时,所以我只生成一次violinplot,然后为一个数据行添加散点图,写入结果文件,从轴上删除散点图,然后为下一行添加散点图。你知道吗
一切正常,但我想添加一个选项,在保存每个绘图之前显示()。你知道吗
如果我使用的是plt.show()
,那么图是正确显示的,但是之后图似乎被清除了,在下一次迭代中,我得到的是没有小提琴图的图。你知道吗
有没有什么办法可以保存图片的内容节目()? 你知道吗
简而言之,我的代码是
fig = generate_plot(ws, show=False) #returns the fig instance of the violin plot
#if I do plt.show() here (or in "generate_plot()"), the violin plots are gone.
ax1, ax3, ax2 = fig.get_axes()
scatter1 = ax1.scatter(...) #draw scatter plot for first axes
[...] #same vor every axis
plt.savefig(...)
scatter1.remove()
我在想一个可能的选择是使用事件循环来推进情节。下面将定义一个更新函数,该函数仅更改散点、绘制图像并保存图像。我们可以通过一个类来管理这个问题,该类在按键上有一个回调,这样当你点击空格时,就会显示下一幅图像;在最后一幅图像上按空格时,绘图就会关闭。你知道吗
一个解决方法是不删除散点图。你知道吗
为什么不保留散点图坐标轴,只更新该坐标轴集的数据?你知道吗
更新散点图数据后,很可能需要
plt.draw()
来强制进行新的渲染。你知道吗我找到了一种交互绘制图形的方法here。
plt.ion()
并用input()
阻止进程似乎很重要。你知道吗我还试图用
time.sleep(1)
阻止这个进程,但它根本不起作用。你知道吗相关问题 更多 >
编程相关推荐