码迷,mamicode.com
首页 > 其他好文 > 详细

Matplotlib 使用GridSpec和其他功能自定义图形布局

时间:2020-04-25 22:01:34      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:不同   intern   底部   数据对象   obj   生成   自定义   product   inf   

如何创建轴的网格状组合。

subplots()也许用于创建图形和轴的主要功能。它也类似于matplotlib.pyplot.subplot(),但是会立即在图形上创建并放置所有轴。

GridSpec指定将放置子图的网格的几何形状。需要设置网格的行数和列数。可选地,可以调整子图布局参数(例如,左,右等)。

 

SubplotSpec指定子图在给定GridSpec中的位置

subplot2grid()类似于的辅助函数 subplot(),但使用基于0的索引,并让子图占据多个单元。本教程未涵盖此功能。

 

基本快速入门指南

前两个示例显示了如何使用subplots()来创建基本的2×2网格gridspec

使用subplots()非常简单。它返回一个Figure实例和一个Axes对象数组 

技术图片

 

 

 对于像这样的简单用例,gridspec可能过于冗长。您必须分别创建图形和GridSpec 实例,然后将gridspec实例的元素传递给 add_subplot()方法以创建轴对象。

通常,以与numpy数组相同的方式访问gridspec的元素。

技术图片

 

 

gridspec的功能在于能够创建跨越行和列的子图

 请注意,我们还使用了便捷方法Figure.add_gridspec 代替gridspec.GridSpec,从而有可能为用户节省了导入时间,并使名称空间更整洁。

技术图片

 

 

 技术图片

 

 

 

gridspec 通过两种方法创建不同宽度的子图也是必不可少的。

此处显示的方法与上述方法类似,并初始化了统一的网格规范,然后使用numpy索引和切片为给定的子图分配多个“单元”。

技术图片

 

 

 另一种选择是使用width_ratiosheight_ratios 参数。这些关键字参数是数字列表。注意,绝对值是没有意义的,只有它们的相对比率才重要。

这意味着,等于 等宽的数字范围内。

技术图片

 

 

 学会使用width_ratios并且height_ratios特别有用,因为顶级函数subplots() 在gridspec_kw参数中接受它们

对于这个问题,任何一个参数接受 GridSpec能够传递给 subplots()通过gridspec_kw参数。

本示例在不直接使用gridspec实例的情况下重新创建了上一个图形。

技术图片

 

 

 

扫盲 enumerate 函数:

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

技术图片

 

 subplotsget_gridspec方法可以结合起来,因为它有时是使大多数使用的次要情节的更方便subplots ,然后删除一些并结合它们。

在这里,我们创建一个布局,其中最后一列的底部两个轴组合在一起。

技术图片

 

 

精细调整Gridspec布局

显式使用GridSpec时,可以调整从GridSpec创建的子图的布局参数。请注意,此选项与子图大小不兼容,

constrained_layout或者 Figure.tight_layout两者都调整子图大小以填充图形。

技术图片

 

 

技术图片

 

 

GridSpec使用SubplotSpec 

您可以从创建GridSpec SubplotSpec,在这种情况下,其布局参数设置为给定SubplotSpec的位置。

技术图片

 

 

一个复杂的嵌套GridSpec使用SubplotSpec 

这是嵌套GridSpec的一个更复杂的示例,其中通过在每个内部3x3网格中隐藏适当的刺,在外部4x4网格的每个单元周围放置一个框。

技术图片

 

技术图片

 

 

 扫盲product函数:

product 用于求多个可迭代对象的笛卡尔积(Cartesian Product),它跟嵌套的 for 循环等价.即:

product(A, B) 和 ((x,y) for in for in B)一样.

技术图片

 

 

 

 

 

 

 

 

Matplotlib 使用GridSpec和其他功能自定义图形布局

标签:不同   intern   底部   数据对象   obj   生成   自定义   product   inf   

原文地址:https://www.cnblogs.com/leon-joker/p/12775520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!