Python 如何将AxesSubplot转换为Axes对象以使子地块_调整仅适用于未转换的AxesSubplot

Python 如何将AxesSubplot转换为Axes对象以使子地块_调整仅适用于未转换的AxesSubplot,python,matplotlib,Python,Matplotlib,我已经创建了两个AxesSubplot列表,我只想分别使用子地块调整()更改两组AxesSubplot的边界框。我发现subplot\u adjust()在Axes对象上不起作用,这意味着如果我将一个AxesSubplot对象列表转换为Axes,那么subplot\u adjust()将对其余AxesSubplot对象正常工作。请看下面的代码 fig,axes1=plt.子批(2,2,figsize=(7.2,7.2)) 图子批次调整(0.2,0.2,0.5,0.5)#调整轴1 axes2=图子

我已经创建了两个
AxesSubplot
列表,我只想分别使用
子地块调整()
更改两组
AxesSubplot
的边界框。我发现
subplot\u adjust()
Axes
对象上不起作用,这意味着如果我将一个
AxesSubplot
对象列表转换为
Axes
,那么
subplot\u adjust()
将对其余
AxesSubplot
对象正常工作。请看下面的代码

fig,axes1=plt.子批(2,2,figsize=(7.2,7.2))
图子批次调整(0.2,0.2,0.5,0.5)#调整轴1
axes2=图子批次(3,3)
#只想调整axes2,但axes1受影响。
#如果axes1中的元素从“axeSubplot”更改为“Axes”,
#那就好了,fig.subplot_adjust()只在“axesssubplot”上起作用。
图子批次调整(0.6,0.6,0.8,0.8)
我知道我可以获得
AxesSubplot
bounds
并从中创建
轴,但我不确定是否还有其他方法可以做到这一点


如果有其他方法可以实现这种灵活性,请同时建议:)

这可以使用两个不同的实例

每个
GridSpec
都可以定义自己的边界
左、右、下、上

在本例中,我们创建两个具有不同边界的
GridSpec
,然后使用
.subplots
函数为每个
GridSpec
创建所有子地块

注意,我使用
subplots\u kw
选项为第二个子图的面上色,只是为了弄清楚哪个是哪个

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(7.2, 7.2))

gs1 = fig.add_gridspec(nrows=2, ncols=2, left=0.1, right=0.6, bottom=0.55, top=0.95)
gs2 = fig.add_gridspec(nrows=3, ncols=3, left=0.4, right=0.9, bottom=0.05, top=0.45)

gs1.subplots()
gs2.subplots(subplot_kw={'facecolor': 'red'})

plt.show()

fig2,axes2=…
然后
fig2.子批次调整(0.6,0.6,0.8,0.8)
?我的代码出现了一些问题,现在我改变了一点,sry@Ynjxsjmh,注意,在一个图中,我生成了一个2x2和一个3x3子图,我想分别调整它们。但是
fig.subplot\u adjust()
对两者都有效。在使用
plt.subplot(2,2)
创建
fig.subplot(3,3)
之后,您想使用
fig.subplot\u adjust()
创建什么?这正是我在我的情况下需要的,我创建了一个2x2和一个3x3,并希望将它们放置在图中的不同位置,非常感谢。我通过从
AxesSubplot
的边界创建
Axes
来解决此问题,并删除原始
AxesSubplot
对象。但是你的回答给了我另一个很好的解决方案:)你使用的是matplotlib的哪个版本
gs1.subplots()
报告错误:“GridSpec”对象没有属性“subplots”。我用的是3.2.2我用的是3.3.0我用的是
fig.add_subplot()
来获取轴,谢谢