Можете ли вы создавать неоднородные итерируемые графики в matplotlib - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь создать фигуру с несколькими неоднородными сюжетами.Я хотел бы иметь возможность создавать графики с использованием итеративного индекса, чтобы мне не приходилось создавать каждый график отдельно.

Я могу создать серию однородных вспомогательных участков, используя fig, ax = plt.subplots (5), где я могу построить различные оси, используя ax [i].

fig, ax = plt.subplots(5)

В дальнейшем я могу построить каждый график, используя ax [i], используя ax [0] .plt и т. Д.

Однако я хотел бы иметь возможность создавать серии графиков.это выглядит так:

gridsize = (10,3)
fig = plt.figure(figsize=(5,3))
ax0 = plt.subplot2grid(gridsize, (0, 0), colspan=3, rowspan=1)

for i in range(1,5):
    ax1 = plt.subplot2grid(gridsize, (i, 0), colspan=2, rowspan=1)
    ax2 = plt.subplot2grid(gridsize, (i, 2), colspan=2, rowspan=1)

, где я могу вызвать каждый график, используя ax [i], как указано выше.

У кого-нибудь есть идеи?Благодарю.

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете добавить оси к списку, из которого можно проиндексировать соответствующий элемент или по которому итерировать.

import numpy as np
import matplotlib.pyplot as plt

gridsize = (10,3)
fig = plt.figure(figsize=(5,3))
ax0 = plt.subplot2grid(gridsize, (0, 0), colspan=3, rowspan=1)

ax = [ax0]

for i in range(1,5):
    ax.append(plt.subplot2grid(gridsize, (i, 0), colspan=2, rowspan=1))
    ax.append(plt.subplot2grid(gridsize, (i, 2), colspan=2, rowspan=1))

## Now plot to those axes:

for i in range(2*4+1):
    ax[i].plot(np.arange(14),np.random.randn(14))

for axi in ax:
    axi.plot(np.arange(14),np.random.randn(14))


plt.show()
...