zoukankan      html  css  js  c++  java
  • matplotlib基础知识全面解析

    图像基本知识:

    通常情况下,我们可以将一副Matplotlib图像分成三层结构:

    1.第一层是底层的容器层,主要包括Canvas、Figure、Axes;

    2.第二层是辅助显示层,主要包括Axis、Spines、Tick、Grid、Legend、Title等,该层可通过set_axis_off()或set_frame_on(False)等方法设置不显示;

    3.第三层为图像层,即通过plot、contour、scatter等方法绘制的图像。

    容器层:容器层主要由Canvas、Figure、Axes组成

      Canvas是位于最底层的系统层,绘图过程中充当画板的角色,即放置画布的工具。通常情况下,我们并不需要对Canvas特别的声明,但是当我需要在其他模块如PyQt中调用Matplotlib模块绘图时,就需要首先声明Canvas,这就相当于我们在自家画室画画不用强调要用画板,出去写生时要特意带一块画板。

      Figure(fig)是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。当我们对Figure大小、背景色彩等进行设置的时候,就相当于是选择画布大小、材质的过程。因此,每当我们绘图的时候,写的第一行就是创建Figure的代码。

      Axes(ax,坐标系)是应用层的第二层,在绘图的过程中相当于画布上绘图区的角色。一个Figure对象可以包含多个Axes对象,每个Axes都是一个独立的坐标系,绘图过程中的所有图像都是基于坐标系绘制的。

    辅助显示层:

      辅助显示层为Axes内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。该层的设置可使图像显示更加直观更加容易被用户理解,但又并不会对图像产生实质的影响。

    图像层:

      图像层指Axes内通过plot、scatter、hist、contour、bar、barbs等函数根据数据绘制出的图像。

    保存图表plt.savefig()

      调用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。下面程序将当前的图表保存为“test.png”,并且通过dpi指定图像的分辨率为120,因此输出图像的宽度为“8X120 = 960”个像素。使用这种方法可以很容易编写出批量输出图表的程序。plt.savefig("test.png",dpi=120)

    plt.imshow()

    imshow()函数格式为:matplotlib.pyplot.imshow(X, cmap=None)

    X: 要绘制的图像或数组

    cmap: 颜色图谱(colormap), 默认绘制为RGB(A)颜色空间。其它可选的颜色图谱如下列表:

    颜色图谱

    描述

    autumn

    红-橙-黄

    bone

    黑-白,x线

    cool

    青-洋红

    copper

    黑-铜

    flag

    红-白-蓝-黑

    gray

    黑-白

    hot

    黑-红-黄-白

    hsv

    hsv颜色空间, 红-黄-绿-青-蓝-洋红-红

    inferno

    黑-红-黄

    jet

    蓝-青-黄-红

    magma

    黑-红-白

    pink

    黑-粉-白

    plasma

    绿-红-黄

    prism

     红-黄-绿-蓝-紫-...-绿模式

    spring

    洋红-黄

    summer

    绿-黄

    viridis

    蓝-绿-黄

    winter

    蓝-绿

    Plt.figure()

    matplotlib.pyplot.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None)

    所有参数都是可选的,都有默认值,因此调用该函数时可以不带任何参数,其中:

    num: 整型或字符型都可以。设置为整型,则该整型数字表示窗口序号。设置为字符型,则该字符串表示窗口名称。用该参数来命名窗口,两个窗口序号或名相同,则后一个窗口会覆盖前一个窗口。

    figsize: 设置窗口大小。是一个tuple型的整数,如figsize=(8,8)。

    dpi: 整形数字,表示窗口的分辨率。

    facecolor: 窗口的背景颜色。edgecolor: 窗口的边框颜色。

    用figure()函数创建的窗口,只能显示一幅图片,显示多幅图片,则需要将这个窗口再划分为几个子图,在每个子图中显示不同的图片。

    可以使用subplot()函数来划分子图,函数格式为:

    matplotlib.pyplot.subplot(nrows, ncols, plot_number)

    nrows: 子图的行数。

    ncols:  子图的列数。

    plot_number: 当前子图的编号。

    ax.get_xlim()

    获得Axes的x坐标范围,默认是 (0.0, 1.0)

    ax.get_yscale()

    获得y轴的数据刻画类型

    ax.set_xscale('log')

    将x轴设置为log

    plt.tight_layout()

    如果有多个子图,我们可以使用tight_layout()函数来调整显示的布局,该函数格式为:

    matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)

    所有的参数都是可选的,调用该函数时可省略所有的参数:

    pad: 主窗口边缘和子图边缘间的间距,默认为1.08

    h_pad, w_pad: 子图边缘之间的间距,默认为 pad_inches

    rect: 一个矩形区域,如果设置这个值,则将所有的子图调整到这个矩形区域内。

    一般调用为:plt.tight_layout()  #自动调整subplot间的参数

     

     

     

  • 相关阅读:
    百度地图API示例之小实践 添加代理商标注
    百度地图API示例之文本标注
    百度地图API示例之添加自定义控件
    百度地图API示例之添加定位相关控件
    linux crontab 计划任务 atd和windows下的计划任务
    转:PHP教程之PHP调用session_start后页面始终加载的问题研究
    PHP使用empty检查函数返回结果时报Fatal error: Can't use function return value in write context的问题
    Linux命令之yes
    转:Yii实战中8个必备常用的扩展,模块和widget
    转:Yii 常量的轻松管理
  • 原文地址:https://www.cnblogs.com/wzdLY/p/10068283.html
Copyright © 2011-2022 走看看