zoukankan      html  css  js  c++  java
  • matplotlib库解析

    matplotlib 是python最著名的2D绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。通过简单的绘图语句,就可以绘制出高质量的图了。

    这里我们就主要讲一下inshow()函数的使用吧。

    一、引入matplotlib函数库

    如果你使用的是windows平台,大家可以直接下载对应版本的matplotlib库的exe文件安装即可。

    使用下面的命令引入matplotlib的pyplot模块:

    import matplotlib.pyplot as plt

    为方便起见,这样我们就可以用plt来代替matplotlib.pyplot使用了。

    二、Figure和Subplot

    matplotlib的图像都位于Figure对象中,实际上就是创建了一个空的图像窗口。可以用plt.figure创建一个新的Figure。

    fig = plt.figure()

    不能通过空Figure绘图,必须用add_subplot()创建一个或多个子sunplot绘图区才能绘图。

    ax = fig.add_subplot(221)

    意思是:绘制2×2两行两列共4个subplot图像,当前选中第一个。编号从1开始。

    得到如下的图像:

    三、绘制z = sqrt(x^2+y^2) 的二维函数输出图像

    (1)准备数据

    我们采用二维数组产生两个二维矩阵,对应于所有的(x,y)对。

    要使用数组,我们使用NumPy 模块。

    import numpy as np

    points = np.arange(-5,5,0.01)   #产生1000个-5到5等间隔的点

    xs,ys = np.meshgrid(points,points)   #np.meshgrid()接受两个一维数组产生两个二维矩阵((x,y)对)。

    z = np.sqrt(xs**2+ys**2)   #计算z = sqrt(x^2+y^2)的值

    (2)绘图

    ax = fig.add_subplot(221)   #第一个子图

    ax.imshow(z)   #默认配置

    ax = fig.add_subplot(222)   #第一个子图

    ax.imshow(z,cmap = plt.cm.gray)   #第二个子图,使用自定义的colormap(灰度图)

    ax = fig.add_subplot(223)   #第一个子图

    ax.imshow(z,cmap=plt.cm.cool)   #第二个子图,使用自定义的colormap

    ax = fig.add_subplot(224)   #第一个子图

    ax.imshow(z,cmap=plt.cm.hot)   #第二个子图,使用自定义的colormap

    plt.show()   #显示图像

    于是,漂亮的图像就出来了。

    可是,细心的你发现,图的坐标怎么是0-1000呢?是这样的,我们给imshow传入z矩阵是1000×1000的,z的索引其实就是图像的坐标,而其值才是通过图的颜色表现出来的。

  • 相关阅读:
    [DB] 数据库的连接
    JS leetcode 翻转字符串里的单词 题解分析
    JS leetcode 拥有最多糖果的孩子 题解分析,六一快乐。
    JS leetcode 搜索插入位置 题解分析
    JS leetcode 杨辉三角Ⅱ 题解分析
    JS leetcode 寻找数组的中心索引 题解分析
    JS leetcode 移除元素 题解分析
    JS leetcode 最大连续1的个数 题解分析
    JS leetcode 两数之和 II
    JS leetcode 反转字符串 题解分析
  • 原文地址:https://www.cnblogs.com/xk-bench/p/8910731.html
Copyright © 2011-2022 走看看