首页 > 其他 > 详细

Matplotlib 约束布局指南

时间:2020-04-26 16:04:05      阅读:88      评论:0      收藏:0      [点我收藏+]

如何使用约束布局将图形干净地拟合到图形中。

constrained_layout会自动调整子图和装饰,例如图例和颜色条,以使其适合图形窗口,同时尽最大可能保留用户请求的逻辑布局。

constrained_layouttight_layout相似 ,但是使用约束求解器来确定允许它们拟合的轴的大小。

在将任何轴添加到图形之前,必须先激活constrained_layout这样做的两种方法是

  plt.subplots(constrained_layout=True)

  plt.rcParams[‘figure.constrained_layout.use‘] = True

当您有多个子图时,通常会看到不同轴的标签相互重叠。

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

彩条

如果使用colorbar() 命令创建颜色条,则需要为其腾出空间。constrained_layout自动执行此操作。

请注意,如果您指定use_gridspec=True它,它将被忽略,因为通过进行了此选项是为了改善布局 tight_layout

技术分享图片

 

 如果您为的ax参数colorbar指定轴列表(或其他可迭代的容器) ,则constrained_layout将占用指定轴的空间。

技术分享图片

 

 如果从轴网格内部指定轴列表,则颜色栏将适当地窃取空间并留出间隙,但所有子图的大小均相同。

技术分享图片

 

 

字幕

constrained_layout还可以腾出空间suptitle

技术分享图片

 

 

图例

图例可以放置在其父轴的外部。约束布局旨在处理Axes.legend()但是,约束布局无法处理通过Figure.legend()(尚未)创建的图例 

技术分享图片

 

 但是,这将从子图布局中窃取空间:

技术分享图片

 

 constrained_layout=True 明显看出子图缩小

技术分享图片

 

 为了使图例或其他艺术家不会从子图布局中窃取空间,我们可以leg.set_in_layout(False)

当然,这可能意味着图例将被裁剪,但是如果随后使用调用该图,则可能很有用

但是请注意,图例的状态必须再次切换才能使已保存的文件起作用,并且如果我们要constrained_layout在打印之前调整轴的大小,

则必须手动触发绘制。fig.savefig(‘outname.png‘, bbox_inches=‘tight‘)get_in_layout

技术分享图片

 

 

边距和间距

对于constrained_layout,我们在每个轴的边缘周围实现了填充。此填充设置距图边缘的距离以及相邻图之间的最小距离。

它由关键字参数w_padh_pad函数 以英寸为单位指定set_constrained_layout_pads

技术分享图片

 

rcParams 

可以在脚本或文件中设置五个rcParammatplotlibrc它们都有前缀figure.constrained_layout

  • use:是否使用constrained_layout。默认为False
  • w_padh_pad:围绕轴对象填充。
    浮点数代表英寸。默认值为3./72。英寸(3分)
  • wspacehspace:子图组之间的空间。
    浮点数表示要分离的子图宽度的一部分。默认值为0.02。
    技术分享图片

     

     

 

手动设置轴位置

手动设置轴位置可能有充分的理由。手动调用set_position将设置轴,因此constrained_layout对其不再起作用。(请注意,constrained_layout仍留有空间用于移动的轴)。

技术分享图片

 

 

Matplotlib 约束布局指南

原文:https://www.cnblogs.com/leon-joker/p/12779536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!