Почему plt.figure (figsize = (X, y)) не изменяет размер моих .hist и .plot? - PullRequest
1 голос
/ 23 января 2020

Я немного запутался в понятиях осей и, честно говоря - что изменило то, что когда дело доходит до бэкэнда matplotlib. В этом посте мне сказали, что "всякий раз, когда вы впервые делаете что-то, требующее объекта осей, он создается для вас и становится объектом по умолчанию, к которому будут применяться все ваши будущие действия, пока вы измените текущие оси на что-то другое. "

Но почему же тогда figsize ничего не делает, когда я использую следующий код в тех же ячейках в блокноте Jupyter:

dataset[['TV','radio']].plot()
plt.figure(figsize=(5,10))

, а также

dataset.hist()
plt.figure(figsize=(10,20))

Почему ничего из этого не работает? Как я могу сказать, на какой объект оси я ссылаюсь? Большое спасибо

1 Ответ

1 голос
/ 23 января 2020

Проблема в том, что plt.figure создает новую фигуру.

Если вы хотите изменить размер существующей фигуры, используйте это:

dataset[['TV','radio']].plot()
fig = plt.gcf() # gcf: get current figure
fig.set_size_inches(5,10)

Другой способ сделать это - это иллюстрирует, как оси создаются и впоследствии используются - начать с размера фигуры, подобного этому:

import numpy as np, pandas as pd

df = pd.DataFrame({'x':[np.random.randint(0,10) for i in range(10)]}) 

fig = plt.figure(figsize=(5,5))
ax = fig.gca() # gca: get current axes
df.plot(ax=ax)

Результат: enter image description here

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