Добавление графиков гистограммы matplotlib в список без перезаписи - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь написать функцию, чтобы она создавала несколько гистограмм (используя matplotlib.pyplot), используя цикл for для некоторых данных. Я добавляю эти графики в список, и список возвращается. Но когда я пытаюсь использовать show () на каждом из графиков, они представляют собой один и тот же график, и все графики перезаписываются.

Я пытался использовать plt.clf () в конце цикла for, но он не работает для меня.

for data in data_list:
    n, bins, patches = plt.hist(x=data, bins='auto', color=color,
                                    alpha=0.7, rwidth=0.85)
    plt.xlabel('Values')
    plt.ylabel('Frequency')
    plt.grid(axis='y', alpha=0.55)
    plots.append(plt)

1 Ответ

0 голосов
/ 19 апреля 2019

Во-первых, может быть, нам следует спросить о необходимости: почему вы хотите держать все участки под рукой?Почему бы не сохранить их после печати plt.savefig('xxxxx')?Планируете ли вы анимировать все фигуры?

Во-вторых, если мы хотим сохранить все фигуры, subplots может быть удобным инструментом.Обратите внимание, что вы все еще строите график на одном графике , но вызов subplots создает несколько осей и позволяет им не мешать друг другу.Попробуйте это:

import matplotlib.pyplot as plt
np.random.seed(0)
data_list = [np.random.randn(10) for _ in range(4)]
plots=[]
fig, axes = plt.subplots(4,1)
for i,data in enumerate(data_list):
    n, bins, patches = axes[i].hist(x=data, bins='auto', 
                                    alpha=0.7, rwidth=0.85)
    axes[i].set_xlabel('Values')
    axes[i].set_ylabel('Frequency')
    axes[i].grid(axis='y', alpha=0.55)

Для получения дополнительной информации о subplots

Для получения дополнительной информации о нескольких цифрах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...