美文网首页ToolsPython数据分析三剑客:Pandas、Numpy、Matplotlibpython
Matplotlib:给子图添加colorbar(颜色条或渐变色

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

作者: ACphart | 来源:发表于2018-08-24 20:24 被阅读1047次

    描述

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

    操作

    • 以下操作均在Jupyter notebook中完成,且首段均有以下代码
    In  [1]: %matplotlib inline
             import numpy as np
             import matplotlib.pyplot as plt
             import mpl_toolkits.mplot3d as p3d
    
    • 最近变懒了,下面就直接粘贴图片了 ~~
    先看常规的给单个图配colorbar
    • 这种没有子图的操作特别简单,一句plt.colorbar()就搞定,
    再看给子图配colorbar
    下面解释这段代码:
    • 首先解释一下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]的区域显示,我们也可以改变渐变色条出现的位置,请对比下面和上面的区别:
    • 我们还可以给ax参数设置成多个Axes对象,这样一个色条就可以包括多个子图:

    相关文章

      网友评论

        本文标题:Matplotlib:给子图添加colorbar(颜色条或渐变色

        本文链接:https://www.haomeiwen.com/subject/sypiiftx.html