Измените линейный стиль всех сюжетов одновременно - PullRequest
0 голосов
/ 17 марта 2020

У меня есть фигура с множеством вспомогательных участков, и моя цель - определить linestyle всех вспомогательных участков одновременно, не для каждого отдельного участка отдельно . Вот MWE:

import matplotlib.pyplot as plt
values = [2, 1, 3]
fig, axs = plt.subplots(2)
axs[0].plot(values)
axs[1].plot(values)

Я попытался пройти по осям с помощью

for ax in axs.flat:
    ax.set_linestyle('None')

, но это вызвало ошибку: «У объекта« AxesSubplot »нет атрибута« set_linestyle »». Я также пытался

plt.setp(axs, linestyle=...)

, но это приводило к ошибке: "Неизвестное свойство linestyle". Есть идеи?

1 Ответ

1 голос
/ 17 марта 2020

Я нашел решение: измените настройки стиля Matplotlib по умолчанию, но сделайте это внутри mpl.rc_context, чтобы другие фигуры не были затронуты.

import matplotlib as mpl

with mpl.rc_context():
    mpl.rcParams['lines.linestyle'] = 'None'
    values = [2, 1, 3]
    fig, axs = plt.subplots(2)
    axs[0].plot(values)
    axs[1].plot(values)
...