python – 将子图添加到现有图中?
发布时间:2020-12-20 13:38:40 所属栏目:Python 来源:网络整理
导读:我正试图掌握matplotlib.当网格形状已经存在时,我很难理解如何添加子图. 因此,例如,如果我创建一个带有2 * 2网格子图的图形,我该如何添加第5或第6个.即如何更改几何图形以适应另一个子图.如果我这样做: x = np.linspace(0,2 * np.pi,400)y = np.sin(x ** 2)
我正试图掌握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 inline import numpy as np x = 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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 【python-leetcode259-双指针】三个数的最小和
- python – S3上的Django collectstatic每次都在Heroku上传文
- Pycharm技巧之代码跳转该如何回退
- Python使用multiprocessing创建进程的方法
- Python基于回溯法子集树模板解决野人与传教士问题示例
- 见过刷火车票的脚本!还没见过刷飞机特价票的!Python实现的
- Flask框架的学习指南之开发环境搭建
- python – 在字典列表中按类别获取最大值
- python numpy之np.random的随机数函数使用介绍
- python – 优化覆盖/溺爱(覆盖__getattribute __ / __ geta