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的索引其实就是图像的坐标,而其值才是通过图的颜色表现出来的。

最新文章

  1. 此请求的查询字符串的长度超过配置的 maxQueryStringLength 值 --不仅wen.fonfig一个地方需要设置
  2. mvc2 To 4
  3. redis 安装及相关问题解决
  4. WIN7实现多人远程一台电脑
  5. yii2.0分页
  6. [Python陷阱]os.system调用shell脚本获取返回值
  7. 黄聪:wordpress中PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312)(转)
  8. 初识C(2)---从printf函数开始
  9. 解决Android中TextView首行缩进的问题
  10. LINUX 笔记-find 命令常用用法
  11. 定位方式(d16)
  12. objectarx 把当前图形输出
  13. 第一个Azure应用
  14. BZOJ-6-2460: [BeiJing2011]元素-线性基
  15. std::nothrow 的使用心得
  16. Python集合(set)类型的操作 (转)
  17. Luogu4700 CEOI2011 Traffic Tarjan、搜索
  18. Debian中APT的前世今生
  19. 为静态博客生成器WDTP移植了一款美美哒主题
  20. linux下保存下位机输出的串口信息为文件

热门文章

  1. c#:无法将 NULL 转换成“System.DateTime”,因为它是一种值类型(转)
  2. 局域网Ubuntu与WinXP实现文件共享
  3. js open窗口父子窗口操作
  4. explain mysql性能优化
  5. AutoFac文档13(转载)
  6. MySQL Subquery
  7. Redis 实现接口访问频率限制
  8. Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结
  9. CodeForces 2A Winner
  10. js监听 window.open 关闭事件