plt.figure()
создает новый экземпляр Figure
, plt.subplot
добавит подзаговор к текущей фигуре - и создаст экземпляр, если в данный момент его не существует.
В первом случае plt.figure()
создает экземпляр Figure
с размером (15,5)
, и этот экземпляр теперь является «текущей фигурой», пока не выйдет из области видимости, не будет закрыт или создается новый Figure
(или «текущая цифра» изменяется другими способами). plt.subplot
затем добавит субплот к этому экземпляру Figure
- в результате получится фигура размером (15,5)
с 4 субплотами по желанию.
Во втором случае, когда вызов plt.figure()
в другой ячейке он больше не будет «текущей фигурой» в другой ячейке. Это потому, что фигура закрывается в конце выполнения первой ячейки - поэтому вы видите вывод <Figure size 1080x360 with 0 Axes>
.
Способ обойти это - сохранить возвращенную Figure
экземпляр из plt.figure()
и затем используйте Figure.add_subplot
вместо plt.subplot
. Тогда первая ячейка будет
fig = plt.figure(figsize=(15,5))
, а вторая будет
for i, feature in enumerate(df.columns):
fig.add_subplot(1, 4, i+1)
df[feature].plot(kind='hist', title=feature)
plt.xlabel(feature)