我在使用matplotlib的funcanimation类时,为了画等高线图随时间变化用了colorbar,虽然图是第二幅覆盖第一副的,满足要求,但是colorbar确并没有被覆盖,而是生成并堆起来了。我想请问一下matplotlib的画图机制是默认覆盖还是在原图上加,如果要修改这种状态该怎么办。还有就是这种堆叠起来的colorbar应该怎么写才能正常?谢谢各位>o<
2条回答 默认 最新
- zmy1127 2023-02-14 09:02关注
Matplotlib 有类似于 Matlab 的 hold on/off 功能,可以在当前图上绘制多个图像,而不是重新绘制整个图。你可以通过调用pyplot模块中的hold()函数来实现这一功能。
import matplotlib.pyplot as plt plt.hold(True) plt.plot(x, y1, 'r') plt.plot(x, y2, 'b') plt.hold(False) plt.show()
默认情况下,Matplotlib 每次绘制图形都将重新绘制图形,以便每次绘制的图形都是最新的。如果你想在原图上加图,就需要调用hold()函数,使其处于“hold on”状态。
对于图上生成的colorbar,如果每次都生成一个新的colorbar,那么就会有多个colorbar叠在一起。为于解决这个问题,你可以在生成colorbar前先判断是否存在colorbar,如果存在,就不再生成新的colorbar,而是使用原来的colorbar。你可以使用pyplot模块中的clf()函数(clear figure)来清空图形,以便重新绘制新的图形,或者在生成新的图形前调用hold()函数,以便在原图上绘制新的图形。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 3
悬赏问题
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了
- ¥50 切换TabTip键盘的输入法
- ¥15 可否在不同线程中调用封装数据库操作的类
- ¥15 微带串馈天线阵列每个阵元宽度计算