如何更改子图的图形大小?

我如何增加数字大小这个数字?

fig.figsize(15, 15)
1309254 次浏览

在图形对象上使用这个:

fig.set_figheight(15)
fig.set_figwidth(15)

或者,当使用.subplots()创建一个新图形时,指定figsize=:

fig, axs = plt.subplots(2, 2, figsize=(15, 15))

或者,使用figsize参数创建一个figure()对象,然后使用add_subplot添加子图。如。

import matplotlib.pyplot as plt
import numpy as np


f = plt.figure(figsize=(10,3))
ax = f.add_subplot(121)
ax2 = f.add_subplot(122)
x = np.linspace(0,4,1000)
ax.plot(x, np.sin(x))
ax2.plot(x, np.cos(x), 'r:')

简单示例

这种方法的好处是语法更接近于调用subplot()而不是subplots()。例如,子图似乎不支持使用GridSpec来控制子图的间距,但subplot()add_subplot()都支持。

除了前面的答案,这里有一个选项,可以通过gridspec_kw分别设置图的大小和图中的子图的大小:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd


#generate random data
x,y=range(100), range(10)
z=np.random.random((len(x),len(y)))
Y=[z[i].sum() for i in range(len(x))]
z=pd.DataFrame(z).unstack().reset_index()


#Plot data
fig, axs = plt.subplots(2,1,figsize=(16,9), gridspec_kw={'height_ratios': [1, 2]})
axs[0].plot(Y)
axs[1].scatter(z['level_1'], z['level_0'],c=z[0])

,结果如下: # EYZ0 < / p >

for loop中绘制subplots,这有时是有用的: 从multivariate numpy array(2维)直方图的多个子图的matplotlib图的示例代码
plt.figure(figsize=(16, 8))
for i in range(1, 7):
plt.subplot(2, 3, i)
plt.title('Histogram of {}'.format(str(i)))
plt.hist(x[:,i-1], bins=60)

您可以使用plt.figure(figsize = (16,8))来更改单个图和最多两个子图的图形大小。(figsize内的参数可以修改图形大小)

要更改更多子图的图形大小,可以在创建子图时使用plt.subplots(2,2,figsize=(10,10))

   from matplotlib import pyplot as plt
lis=[img,gaussian_img,gaussian_img_8bit]
f,axs=plt.subplots(3,1,figsize=(25,25)) #ROW,COLUMN
axs[0].imshow(lis[0])
axs[1].imshow(lis[1])
axs[2].imshow(lis[2])