资讯专栏INFORMATION COLUMN

如何使用Python修改matplotlib.pyplot.colorbar的位置以对齐主图

89542767 / 916人阅读

  matplotlib作为Python常见的二维图形,那么,怎么去使用Python修改这类的二维图形呢?比如,去修改matplotlib.pyplot.colorbar的位置,让其做好对应工作,保证相关的位置对齐,以此用来进行对齐主图,具体下面给大家解答。


  问题描述

01.png

  像这样的图,我想把右边的colorbar设置成和主图一样高度


  方法


  0.plt.colorbar参数介绍


  https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.colorbar.html?highlight=colorbar#matplotlib.pyplot.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)


  效果展示

01.png

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来更多帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128431.html

相关文章

  • 【正经AI on Python入门系列】1.1斗图工具优化——实现文本居中(还混进了一些语法基础

    摘要:大家还记得上一篇文章来学点吧从一个斗图小工具开始中最后提到的几个问题么,我们这次就来解决一下其中难度最大的一个文本居中看,我把代码优化了上次之后,我偷偷把代码优化了,现在的方法长这样创建表情图调试用生成表情包对的,我把那些老长老长 showImg(https://segmentfault.com/img/bVbeDVL?w=250&h=250); 大家还记得上一篇文章0.来学点Pyth...

    Luosunce 评论0 收藏0
  • Python——基本数据类型(模块2: time库使用)(实例3:文本进度条)

    摘要:前言本篇主要介绍基本数据类型,以文本进度条为例,介绍库的使用。 前言 本篇主要介绍基本数据类型,以文本进度条为例,介绍time库的使用。 并在最后对蟒蛇绘制的代码进...

    Jenny_Tong 评论0 收藏0
  • python_pandas学习

    摘要:的名称来自于面板数据和数据分析。以下的内容主要以为主。终端输入导入相关模块是一种类似于一维数组的对象,它由一组数据各种数据类型以及一组与之相关的数据标签即索引组成。如果仅传入一个序列,则会重新索引行函数的参数参数说明用作索引的新序列。 原文链接 numPy pandas的数据结构介绍 简介 Pandas [1] 是python的一个数据分析包,最初由AQR Capital Mana...

    codercao 评论0 收藏0
  • Python标准库---18、文本处理服务:string 常见字符串操作

    摘要:由在语言区域中被视为标点符号的字符组成的字符串。给定作为见上文的返回值,将其转换为要格式化的对象。选项表示对浮点表示类型和整数表示类型使用下划线作为千位分隔符。 上一篇文章:Python标准库---17、内置异常下一篇文章:Python标准库---19、文本处理服务:re正则表达式操作 字符串常量 此模块中定义的常量为: string.ascii_letters下文所述 ascii...

    bbbbbb 评论0 收藏0
  • [译][Tkinter 教程02] Message 控件

    摘要:已获原作者授权原系列地址控件控件用来展示一些文字短消息和控件有些类似但在展示文字方面比要灵活比如控件可以改变字体而控件只能使用一种字体它提供了一个换行对象以使文字可以断为多行它可以支持文字的自动换行及对齐这里要澄清一下前面提到的控件可以改变 已获原作者授权. 原系列地址: Python Tkinter Message 控件 Message 控件用来展示一些文字短消息. Message...

    JowayYoung 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<