python matplotlib.pyplot.imshow 函数画二维颜色图

matplotlib.pyplot.imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, *, filternorm=True, filterrad=4.0, resample=None, url=None, data=None, **kwargs)

From: https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html?highlight=imshow#matplotlib.pyplot.imshow


改以下参数可以对图片效果进行调整:

  1. cmap用来选择colormap。
    matplotlib的colormap的选择具体参考:https://matplotlib.org/tutorials/colors/colormaps.html
  2. norm用来定义scale的数据的区间,以及这个区间内的scale的形式,比如linear或lognormal。norm参数的选择参照matplotlib.colors的classes,常用为LogNorm以及Normalize:


    From: https://matplotlib.org/api/colors_api.html
    • 以matplot.colors.LogNorm为例
      matplotlib.colors.LogNorm(vmin=None, vmax=None, clip=False)
        将给定值对应于对数化的0-1的范围,其中vmin和vmax定义的是用来scale的值的区间,如果这两个值没有给,那么默认是最大值和最小值。vmin的值越小以及vmax的值越小,弱的值在图中越明显。小于vmin或大于vmax的数据值对应于vmin或vmax。但clip的参数用起来好像没什么影响。
  3. alpha确定不透明度,参数范围为0-1,其中0对应完全透明,1对应完全不透明。如果alpha输入为数组,那么对应每一个pixel的不透明度。
  4. 当没有明确的norm参数时,vmin和vmax定义了colormap覆盖的数据的范围。当给出norm参数时,这里的vmin和vmax是无效的。
  5. origin:’upper‘或’lower‘,默认是’upper‘。’upper‘数组中第一行的值对应图的最上面,'lower'相反。
  6. extent: (left, right, bottom, top)
      四个数值给出了图像填充的框架,即将图像沿着x轴和y轴拉伸,去填充至定义的框架内。默认的extent:每一个pixel的尺寸为1,图片中所有pixel水平的中心坐标从0到(数据列数-1),垂直的中心坐标是从0至(数组的行数-1)。
      所以在没有extent的参数情况下,横纵轴坐标的范围分别是[0, columns-1],[0, row-1];给出了extent之后,横纵轴坐标的范围分别是[left, right],[bottom, top]。right可以小于left,top也可以小于bottom。

举个栗子:

import matplotlib.pyplot as plt
import matplotlib as mpl
extent=left, right, bottom, top
plt.imshow(arrayTemp,cmap='jet',extent=extent,origin='lower',norm=mpl.colors.LogNorm(4,np.max(array)/2,clip=True))

你可能感兴趣的:(python matplotlib.pyplot.imshow 函数画二维颜色图)