не могу построить графики морского побережья рядом - PullRequest
1 голос
/ 30 октября 2019

Я провел исследование здесь, в SO, и все ответы, которые я нашел, не решают мою проблему. У меня есть 4 гистограммы, которые я хочу построить на 2 рядах и 2 столбцах.

Если я просто хочу построить 2 гистограммы на 1 строке, то это работает нормально, но как только я добавляю больше гистограмм, все это умирает! это код:

`fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=2, ncols=2)
sns.distplot(iot['opex_euro'],ax=ax1)
sns.distplot(iot['cost_of_delay'],ax=ax2)
sns.distplot(iot['customer_commitment_value'],ax=ax3)
sns.distplot(iot['ktlo_value'],ax=ax4)
plt.show()`

и это сообщение об ошибке, которое я получаю:

`ValueError Traceback (most recent call last)
<ipython-input-115-5b6d5d693b20> in <module>()
1 #plotParams()
2 
----> 3 fig, (ax1, ax2, ax3, ax4) = plt.subplots(nrows=2, ncols=2)
4 sns.distplot(iot['opex_euro'],ax=ax1)
5 sns.distplot(iot['cost_of_delay'],ax=ax2)
ValueError: not enough values to unpack (expected 4, got 2)`

Могу ли я получить направление в правильном направлении?

1 Ответ

1 голос
/ 30 октября 2019

Для рисунков подзаговоров с m строками и n столбцами, где m> 1 и n> 1, plt.subplots() возвращает двумерный массив Axes с формой m х n. Это сделано для облегчения доступа к определенной оси с помощью индексов строк / столбцов:

fig, axes = plt.subplots(nrows=2, ncols=2)
bottom_right_ax = axes[1, 1]

Поскольку это двумерный массив Axes, вам потребуется немного другой синтаксис распаковки для кода, чтобыwork:

fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2)

В приведенной выше строке кортеж (ax1, ax2) распаковывается в первую (верхнюю) строку массива 2D Axes, а кортеж (ax3, ax4) делает то же самое для последнего (нижний) ряд.

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