Вот пример сценария для создания ствольного графика в matplotlib.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
# returns 10 evenly spaced samples from 0.1 to 2*PI
x = np.linspace(0.1, 2 * np.pi, 10)
fig, ax = plt.subplots( figsize=(4.,3.), constrained_layout=True)
markerline, stemline, baseline = ax.stem(x, np.cos(x), '-.', use_line_collection=True)
markerline1, stemline1, baseline1 = ax.stem(x, np.cos(x*5), '-', use_line_collection=True)
plt.setp(baseline, color='black', linewidth=2)
plt.setp(baseline1, color='black', linewidth=2)
plt.setp( stemline, color="green" )
plt.setp( stemline1, color="red" )
plt.show()
Q1. После создания этих графиков я хотел бы удалить, например, markerline1
, stemline1
, baseline1
. Как мне их удалить?
Q2. Если я хотел бы удалить весь стволовой участок из ax
, не затрагивая другие настройки ax
, как мне это сделать? Я обнаружил, что ax.clear()
удаляет все из ax
.
Согласно matplotlib,
UserWarning: В Matplotlib 3.3 отдельные линии на стебельном графике будут добавлены как LineCollection вместо отдельных линий.
Кроме того, LineCollection , кажется, имеет атрибут с именем segment
, который содержит информацию x, y для всех линий ствола.
Q3. Как получить объект LineCollection
из ax
или fig
? Я исследую, является ли изменение объекта LineCollection
способом для ответа на мой первый вопрос.