Python 如何使用matplotlib定义地物内子地块的尺寸(以英寸为单位)?

Python 如何使用matplotlib定义地物内子地块的尺寸(以英寸为单位)?,python,matplotlib,Python,Matplotlib,我的图的尺寸为figsize=(10,10),其中有一个子图。如何将子批次的尺寸定义为8英寸宽x 8英寸高,以重新标记子批次显示的数据范围 编辑:我之所以搜索它,是因为我正在尝试创建一些用于发布的绘图。因此,我需要我的绘图具有固定的宽度和高度,以便能够无缝地插入到手册中 以下是分条代码: map_size = [8,8] fig, ax = plt.subplots(1,1,figsize=map_size) ax.plot(data) fig.savefig('img.png', dpi=30

我的图的尺寸为figsize=(10,10),其中有一个子图。如何将子批次的尺寸定义为8英寸宽x 8英寸高,以重新标记子批次显示的数据范围

编辑:我之所以搜索它,是因为我正在尝试创建一些用于发布的绘图。因此,我需要我的绘图具有固定的宽度和高度,以便能够无缝地插入到手册中

以下是分条代码:

map_size = [8,8]
fig, ax = plt.subplots(1,1,figsize=map_size)
ax.plot(data)
fig.savefig('img.png', dpi=300,)  # figure is the desired size, subplot seems to be scaled to fit to fig

一个选项是使用
fig.subplot\u adjust
设置图中子图的大小。参数
left
right
bottom
top
是(图的总尺寸)的分数单位。因此,对于10x10图形中的8x8子批次,
右-左=0.8
,等等:

import matplotlib.pyplot as plt

fig=plt.figure(figsize=(10.,10.))
fig.subplots_adjust(left=0.1,right=0.9,bottom=0.1,top=0.9)

ax=fig.add_subplot(111)
这样做,如果更改地物大小,则必须手动更改左侧、右侧、底部和顶部值

我想您可以将该计算构建到您的代码中:

import matplotlib.pyplot as plt

subplotsize=[8.,8.]
figuresize=[10.,10.]   

left = 0.5*(1.-subplotsize[0]/figuresize[0])
right = 1.-left
bottom = 0.5*(1.-subplotsize[1]/figuresize[1])
top = 1.-bottom

fig=plt.figure(figsize=(figuresize[0],figuresize[1]))
fig.subplots_adjust(left=left,right=right,bottom=bottom,top=top)

ax=fig.add_subplot(111)

如果你的图中的子图分别占据了宽度和高度的80%和80%,这就是你想要的吗?或者你想让子地块占据8英寸的宽度和高度,而不管图形大小?不管图形大小,如果可能的话,我希望子地块有一个恒定的大小。当然,从子地块到容纳任何标签的图形都会更大。@user528025的可能重复项一个选项是将子地块定义为独立图形,并以英寸为单位设置其大小,然后作为子地块插入“主”图形中。左、右、右单位是多少,子地块中的底部和顶部\u调整方法?@user528025:它们是(图形总尺寸的)分数单位是的,正如@FredL所指出的,它们是图形的分数单位。我编辑了答案以澄清,如果只有一个子地块,hspace或wspace参数会有任何影响吗?不,它们定义了空间两个或多个子地块之间的(
hspace
=高度,
wspace
=宽度)