Pierde Los Modales 2023-02-13 14:57 采纳率: 76.9%
浏览 1267
已结题

matplotlib的有类似于matlab的hold on,hold off功能吗

我在使用matplotlib的funcanimation类时,为了画等高线图随时间变化用了colorbar,虽然图是第二幅覆盖第一副的,满足要求,但是colorbar确并没有被覆盖,而是生成并堆起来了。我想请问一下matplotlib的画图机制是默认覆盖还是在原图上加,如果要修改这种状态该怎么办。还有就是这种堆叠起来的colorbar应该怎么写才能正常?谢谢各位>o<

img

  • 写回答

2条回答 默认 最新

  • zmy1127 2023-02-14 01: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条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月21日
  • 已采纳回答 2月14日
  • 创建了问题 2月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部