Matplotlib:给子图添加colorbar(颜色条或渐变色条)

描述

  • 当我们给图配渐变色时,常常需要在图旁边把colorbar显示出来,这里记一下当有多个子图时如何显示colorbar

操作

  • 以下操作均在Jupyter notebook中完成,且首段均有以下代码
In  [1]: %matplotlib inline
         import numpy as np
         import matplotlib.pyplot as plt
         import mpl_toolkits.mplot3d as p3d
  • 下面就直接粘贴图片了 ~~
先看常规的给单个图配colorbar
Matplotlib:给子图添加colorbar(颜色条或渐变色条)_第1张图片
  • 这种没有子图的操作特别简单,一句plt.colorbar()就搞定,
再看给子图配colorbar
Matplotlib:给子图添加colorbar(颜色条或渐变色条)_第2张图片
下面解释这段代码:
  • 首先解释一下fig.colorbar()函数,我们看它的原型:
plt.Figure.colorbar(self, mappable, cax=None, ax=None, use_gridspec=True, **kw)
  • 它一般有以下用法:
colorbar(**kwargs)
colorbar(mappable, **kwargs)
colorbar(mappable, cax=cax, **kwargs)
colorbar(mappable, ax=ax, **kwargs)
  • 其中第一种用在没有子图的时候,也就是plt.colorbar()可以不用输入参数
  • 后面三个一般用在有子图的时候,其中上面的例子中第8行就是用的这里第4种用法,这里有一个必须的参数mappable
  • 参数mappable理解起来就是我们需要提供一个可以映射颜色的对象,这个对象就是我们作的图
  • 所以例子中6、7行我们需要获取这两个子图对象,然后将其传给colorbar()colorbar则会获取这个图所用的渐变颜色种类,之后的一个参数ax用来指示colorbar()获取到的渐变色条在哪里显示,我们设置ax=ax[0]那它就在ax[0]的区域显示,我们也可以改变渐变色条出现的位置,请对比下面和上面的区别:
    Matplotlib:给子图添加colorbar(颜色条或渐变色条)_第3张图片
  • 我们还可以给ax参数设置成多个Axes对象,这样一个色条就可以包括多个子图:
    Matplotlib:给子图添加colorbar(颜色条或渐变色条)_第4张图片

你可能感兴趣的:(python)