Построение различных данных в подкадрах - PullRequest
1 голос
/ 05 апреля 2020

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

import pandas as pd
import numpy as np
from pprint import pprint
from matplotlib import pyplot as plt


df1 = pd.DataFrame(np.random.randn(10, 10))
df2 = pd.DataFrame(np.random.randn(10, 10))


plt.figure()
fig, axes = plt.subplots(nrows=1, ncols=2)

df1.plot(ax=axes[0, 0], style='o-')
axes[0, 0].set_xlabel('x')
axes[0, 0].set_ylabel('y')
axes[0, 0].set_title('ttl')

df2.plot(ax=axes[0, 1], style='o-')
axes[0, 1].set_xlabel('x')
axes[0, 1].set_ylabel('y')
axes[0, 1].set_title('ttl')

Однако я получаю следующую ошибку

df1.plot(ax=axes[0, 0], style='o-')
IndexError: too many indices for array

Любые предложения о том, как решить эту проблему, будут действительно полезны. РЕДАКТИРОВАТЬ: приведенный ниже ответ работает для 1 строки с 2 столбцами

Я сталкиваюсь с ошибкой для 2 строк и 2 столбцов

import pandas as pd
import numpy as np
from pprint import pprint
from matplotlib import pyplot as plt


df1 = pd.DataFrame(np.random.randn(10, 10))
df2 = pd.DataFrame(np.random.randn(10, 10))
df3 = pd.DataFrame(np.random.randn(10, 10))
df4 = pd.DataFrame(np.random.randn(10, 10))

pprint(df1)

plt.figure()
fig, axes = plt.subplots(nrows=2, ncols=2)

df1.plot(ax=axes[0], style='o-')
axes[0].set_xlabel('x')
axes[0].set_ylabel('y')
axes[0].set_title('ttl')

df2.plot(ax=axes[1], style='o-')
axes[1].set_xlabel('x')
axes[1].set_ylabel('y')
axes[1].set_title('ttl')


df3.plot(ax=axes[2], style='o-')
axes[2].set_xlabel('x')
axes[2].set_ylabel('y')
axes[2].set_title('ttl')

df4.plot(ax=axes[3], style='o-')
axes[3].set_xlabel('x')
axes[3].set_ylabel('y')
axes[3].set_title('ttl')

plt.show()

Ошибка:

AttributeError: 'numpy.ndarray' object has no attribute 'get_figure'

Есть предложения?

1 Ответ

2 голосов
/ 05 апреля 2020

Оси одномерные, вы должны сделать так:

df1.plot(ax=axes[0], style='o-')
df2.plot(ax=axes[1], style='o-')

Я предлагаю прочитать это , посмотрите на параметр сжатия, и вы поймете, что это происходит.

...