Я делаю интерфейс, где у меня есть несколько кнопок «очистить это» и «очистить это» для удаления различных элементов графика.
Проблема с matplotlib заключается в том, что я должен знатьточный порядок, в котором объекты были нанесены, чтобы удалить правильный с ax.lines.pop()
.Например, график может содержать необработанные данные, затем сглаженную версию, а затем подгонку сверху, но в зависимости от порядка их вызова ax.lines.pop(2)
удалит либо синюю, либо красную линию.
Но как я могу последовательно удалить, например, красную линию в многослойном сценарии?

import matplotlib.pyplot as plt
import numpy as np
from scipy.signal import medfilt
a = np.random.normal(0, 1, 100)
b = medfilt(a, 17)
fig1, axes = plt.subplots(ncols = 2)
ax1, ax2 = axes
ax1.set_title("Figure 1")
ax1.plot(a, color = "darkgrey") # 0
ax1.plot(b, color = "firebrick") # 1
ax1.axhline(0.5, color = "blue") # 2
ax1.lines.pop(2)
ax2.set_title("Figure 2")
ax2.plot(a, color = "darkgrey") # 0
ax2.axhline(0.5, color = "blue") # 2
ax2.plot(b, color = "firebrick") # 1
ax2.lines.pop(2)
plt.show()