首页 > 解决方案 > 为什么 plt.figure(figsize=(X,y)) 不改变我的 .hist 和 .plot 的大小?

问题描述

我对轴的概念有点困惑,坦率地说 - 当涉及到 matplotlib 后端时,什么会修改什么。我在这篇文章中被告知“每当您第一次执行需要轴对象的操作时,都会为您创建一个并成为您未来所有操作的默认对象,直到您将当前轴更改为其他对象。”

但是,为什么当我在 Jupyter 笔记本的相同单元格中使用以下代码时, figsize 似乎没有做任何事情:

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

并且

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

为什么这些都不行?如何判断我引用的是哪个轴对象?非常感谢

标签: pythonpandasmatplotlibplot

解决方案


问题是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)

结果: 在此处输入图像描述


推荐阅读