matplot 动态绘图,如何只清除重绘的图例?

发布于 2022-09-07 00:06:03 字数 2024 浏览 11 评论 0

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 18/2/26 下午12:52
# @Author  : AlexZ33
# @File    :
# @Desc    :

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
from mpl_toolkits.mplot3d import Axes3D


# 解决中文乱码问题
myfont = fm.FontProperties(fname='/home/zk/study/python_lessions/DataVisualiztion/Library/Fonts/simsun.ttc', size=14)
matplotlib.rcParams["axes.unicode_minus"] = False

def simple_plot():
    """
    simple plot
    :return:
    """
    #生成画布
    plt.figure(figsize=(8,6), dpi=80)

    #打开交互模式
    plt.ion()

    # 循环
    for index in range(100):
        #清除原有图像
        plt.cla()
        #设定标题等
        plt.title("动态曲线图",fontproperties=myfont)
        plt.grid(True)

        #生成测试数据
        x = np.linspace(-np.pi + index, np.pi+0.1*index, 256,endpoint=True)

        y_cos, y_sin = np.cos(x),np.sin(x)

        # 设置x轴
        plt.xlabel("x轴", fontproperties= myfont)
        plt.xlim(-4 + 0.1*index,4 + 0.1*index)
        plt.xticks(np.linspace(-4 + 0.1 * index, 4 + 0.1 * index, 9, endpoint=True))
        # 设置Y轴
        plt.ylabel("Y轴", fontproperties=myfont)
        plt.ylim(-1.0, 1.0)
        plt.yticks(np.linspace(-1, 1, 9, endpoint=True))

        # 画两条曲线
        plt.plot(x, y_cos, "b--", linewidth=2.0, label="cos示例")
        plt.plot(x, y_sin, "g-", linewidth=2.0, label="sin示例")


        # 设置图例位置,loc可以为[upper, lower, left, right, center]
        plt.legend(loc="upper left", prop=myfont, shadow=True)

        # 暂停
        plt.pause(0.1)

    # 关闭交互模式
    plt.ioff()

    # 图形显示
    plt.show()
    return


if __name__ == '__main__':
    simple_plot()



在绘制前plt.cla()会把之前绘制的线清除掉
图片描述

删除 plt.cla()就是这样的效果,图例多次绘制
图片描述

如何只清除图例又不影响cos ,sin 动态绘制

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

漆黑的白昼 2022-09-14 00:06:03

请试试下面的办法。
请将下面的语句:
plt.cla()
换为:
plt.clf()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文