首页 > 解决方案 > 更新多图 matplotlib

问题描述

我在更新 matplotlib 图表时遇到问题。问题是我有很多曲线,更新后它们的数量可能会改变。在示例代码中,我有 2 组数据,第 1 组有 90 条曲线,第 2 组有 80 条曲线,我希望我可以在同一个 matplotlib 窗口中绘制第 1 组和第 2 组。

import matplotlib.pyplot as plt
from matplotlib.transforms import Bbox
import numpy as np
from numpy.lib.polynomial import RankWarning
import pandas as pd
import sys

fig, ax = plt.subplots()
fig.subplots_adjust(right=0.78)
_x = []
_y = []
_y1 = []
_x1 = []
for x in range(90):
    _x.append(np.linspace(0, 10*np.pi, 100))
    _y.append(np.sin(_x[x])+x)
for x in range(80):
    _x1.append(np.linspace(0, 10*np.pi, 150))
    _y1.append(np.tan(_x1[x]+x))


def narysuj(__x, __y):

    p = []  # p-pomiar
    f = []  # f-czestotliwosc
    for x in range(len(__x)):
        p.append([])
        f.append([])
    ax.set_prop_cycle(color=plt.cm.gist_rainbow(np.linspace(0, 1, len(__x))))
    for x in range(len(__x)):
        for line in range(len(__x[x])):
            #print(len(_y[x]), line)
            p[x].append(__y[x][line])
            f[x].append(__x[x][line])
        ax.plot(f[x], p[x], label=f"Label {x}")
    plt.show()


narysuj(_x, _y)
narysuj(_x1, _y1)

PS我知道我绘制这些图表的方式非常无效。

标签: pythonmatplotlib

解决方案


我发现了问题所在。我必须在程序开始时添加 plt.ion() 并在绘图之前添加 ax.clear() 。


推荐阅读