python – 将子图添加到现有图中?

python – 将子图添加到现有图中?,第1张

概述我正试图掌握matplotlib.当网格形状已经存在时,我很难理解如何添加子图. 因此,例如,如果我创建一个带有2 * 2网格子图的图形,我该如何添加第5或第6个.即如何更改几何图形以适应另一个子图.如果我这样做: x = np.linspace(0, 2 * np.pi, 400)y = np.sin(x ** 2)f, ((ax1, ax2), (ax3, ax4)) = plt.subp 我正试图掌握matplotlib.当网格形状已经存在时,我很难理解如何添加子图.

因此,例如,如果我创建一个带有2 * 2网格子图的图形,我该如何添加第5或第6个.即如何更改几何图形以适应另一个子图.如果我这样做:

x = np.linspace(0,2 * np.pi,400)y = np.sin(x ** 2)f,((ax1,ax2),(ax3,ax4)) = plt.subplots(2,2,sharex=True,sharey=True,facecolor='red',\dpi = 100,edgecolor = 'red',linewidth = 5.0,frameon = True)ax1.plot(x,y)ax1.set_Title('Sharing x per column,y per row')ax2.scatter(x,y)ax3.scatter(x,2 * y ** 2 - 1,color='r')ax4.plot(x,color='r')

然后我想在下面添加另一个子图:

f.add_subplot(3,5)

然后新的子图与第四个重叠,当我希望它明显位于下方时.我需要更改几何图形吗?如果是这样,怎么样?或者它只是一个位置的东西?

更普遍的是,带有子情节的** kwargs会发生什么?如果有人可以帮我解决如何开始使用它们,那也会非常方便.

解决方法 我认为你应该改变绘图布局几何的直觉是正确的.您首先指定(2,2)几何形状,即2行和2列,因此通过常规方法自然添加第5个图可能会导致一些问题.有多种方法可以解决这个问题,但其中一个更简单的解决方案就是通过使用第三行图来给自己一个更大的子图网格 – 使用(3,2)几何,如下例所示:

%pylab inlineimport numpy as npx = np.linspace(0,400)y = np.sin(x ** 2)#probably easIEst to add a third row of plots (3,2) at this stage:f,ax4),(ax5,ax6)) = plt.subplots(3,color='r')#Now the fifth plot shouldn't clobber one of the others:ax5.plot(x,y**3,color='g')

如果你想让第五个图占据整个底行,而不是在那里有一个空白的第6个图,你可以使用更高级的选项,如gridspec documentation中描述的matplotlib.grIDspec.

@H_301_42@ 总结

以上是内存溢出为你收集整理的python – 将子图添加到现有图中?全部内容,希望文章能够帮你解决python – 将子图添加到现有图中?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1196934.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存