如何使用Python修改matplotlib.pyplot.colorbar的位置以对齐主图
问题描述
像这样的图,我想把右边的colorbar设置成和主图一样高度
方法
0. plt.colorbar参数介绍
1. plt.colorbar(im, fraction=0.046, pad=0.04, shrink=1.0)
fraction可以从0.035-0.046调节以找到合适大小
但当图像的长、高对比过大时,可能不起作用
2. make_axes_locatable
这是matplotlib包里的一个函数
from mpl_toolkits.axes_grid1 import make_axes_locatable im = plt.imshow(data) divider = make_axes_locatable(plt.gca()) cax = divider.append_axes("right", size="5%", pad="3%") plt.colorbar(im, cax=cax)
不适用于有投影参数的axe(会报错),如cartopy的GeoAxes
3. make_axes_locatables 升级版
https://stackoverflow.com/questions/18195758/set-matplotlib-colorbar-size-to-match-graph @Matthias
import matplotlib.pyplot as plt from mpl_toolkits import axes_grid1 def add_colorbar(im, aspect=20, pad_fraction=0.5, **kwargs): """Add a vertical color bar to an image plot.""" divider = axes_grid1.make_axes_locatable(im.axes) width = axes_grid1.axes_size.AxesY(im.axes, aspect=1./aspect) pad = axes_grid1.axes_size.Fraction(pad_fraction, width) current_ax = plt.gca() cax = divider.append_axes("right", size=width, pad=pad) plt.sca(current_ax) return im.axes.figure.colorbar(im, cax=cax, **kwargs)
用法示例
im = plt.imshow(np.arange(200).reshape((20, 10))) add_colorbar(im)
4. 手动给colorbar添加一个axe
https://stackoverflow.com/questions/18195758/set-matplotlib-colorbar-size-to-match-graph @Fei Yao
import matplotlib.pyplot as plt import numpy as np fig=plt.figure() ax = plt.axes() im = ax.imshow(np.arange(100).reshape((10,10))) # Create an axes for colorbar. The position of the axes is calculated based on the position of ax. # You can change 0.01 to adjust the distance between the main image and the colorbar. # You can change 0.02 to adjust the width of the colorbar. # This practice is universal for both subplots and GeoAxes. cax = fig.add_axes([ax.get_position().x1+0.01,ax.get_position().y0,0.02,ax.get_position().height]) plt.colorbar(im, cax=cax) # Similar to fig.colorbar(im, cax = cax)
效果展示
总结
到此这篇关于如何使用Python修改matplotlib.pyplot.colorbar的位置以对齐主图的文章就介绍到这了,更多相关Python修改matplotlib.pyplot.colorbar位置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
这篇文章主要介绍了Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句,结合实例形式详细分析Python3.5编程入门相关的变量、数据结构、常用条件与循环语句操作技巧及注意事项,需要的朋友可以参考下2019-04-04Selenium 三种等待方式(强制等待、隐式等待、显示等待)
这篇文章主要介绍了Selenium 三种等待方式(强制等待、隐式等待、显示等待),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-02-02python Boltons库实用功能探索(深度复制类型检查重试机制)
这篇文章主要为大家介绍了python Boltons库实用功能探索包含深度复制类型检查重试机制及数据结构转换实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2024-01-01Python3+SQLAlchemy+Sqlite3实现ORM教程
这篇文章主要介绍了Python3+SQLAlchemy+Sqlite3实现ORM教程,需要的朋友可以参考下2021-02-02
最新评论