matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作。每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等。matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上。

import matplotlib.pyplot as plt

plt.plot([1,2,3,4])

plt.ylabel('some numbers')

plt.show()

上图的X坐标是1-3,纵坐标是1-4,这是因为如果你只提供给plot()函数一个列表或数组,matplotlib会认为这是一串Y值(Y向量),并且自动生成X值(X向量)。而Python一般是从0开始计数的,所以X向量有和Y向量一样的长度(此处是4),但是是从0开始,所以X轴的值为[0,1,2,3]。

如果要显示的制定X轴的坐标,可以像如下一样:

plt.plot([1,2,3,4],[1,4,9,16])

也可以给plt.plot()函数传递多个序列(元组或列表),每两个序列是一个X,Y向量对,在图中构成一条曲线,这样就会在同一个图里存在多条曲线。

为了区分同一个图里的多条曲线,可以为每个X,Y向量对指定一个参数来标明该曲线的表现形式,默认的参数是'b-',亦即蓝色的直线,如果想用红色的圆点来表示这条曲线,可以:

import matplotlib.pyplot as plt

plt.plot([1,2,3,4],[1,4,9,16],'ro')

plt.axis([0,6,0,20])

axis()函数接受形如[xmin,xmax,ymin,ymax]的参数,指定了X,Y轴坐标的范围。

matplotlib不仅仅可以使用序列(列表和元组)作为参数,还可以使用numpy数组。实际上,所有的序列都被内在的转化为numpy数组。

import numpy as np

import matplotlib.pyplot as plt

t=np.arange(0.,5.,0.2)

plt.plot(t,t,'r--',t,t**2,'bs',t,t**3,'g^')

控制曲线的属性

曲线有许多我们可以设置的性质:曲线的宽度,虚线的风格,抗锯齿等等。有多种设置曲线属性的方法:

1.使用关键词参数:

plt.plot(x,y,linewidth=2.0)

2.使用Line2D实例的设置(Setter)方法。plot()返回的是曲线的列表,比如line1,line2=plot(x1,y1,x2,y2).我们取得plot()函数返回的曲线之后用Setter方法来设置曲线的属性。

line,=plt.plot(x,y,'-')

line.set)antialliased(False) #关闭抗锯齿

3.使用setp()命令:

lines=plt.plot(x1,y1,x2,y2)

plt.setp(lines,color='r',linewidth=2.0)

plt.setp(lines,'color','r','linewidth','2.0')

处理多个图和Axe

MATLAB和pyplot都有当前图和当前axe的概念。所有的作图命令都作用在当前axe。

函数gca()返回当前axe,gcf()返回当前图。

import numpy as np

import matplotlib.pyplot as plt

def f(t):

return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 5.0, 0.1)

t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)

plt.subplot(211)

plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')

plt.subplot(212)

plt.plot(t2, np.cos(2*np.pi*t2), 'r--')

figure()命令是可选的,因为figure(1)会被默认创建,subplot(111)也会被默认创建。subplot()命令会指定numrows,numcols,fignum,其中fignum的取值范围为从1到numrows*numcols。如果numrows*numcols小于10则subplot()命令中的逗号是可选的。所以subplot(2,1,1)与subplot(211)是完全一样的。

如果你想手动放置axe,而不是放置在矩形方格内,则可以使用axes()命令,其中的参数为axes([left,bottom,width,height]),每个参数的取值范围为(0,1)。

你可以使用多个figure()来创建多个图,每个图都可以有多个axe和subplot:

import matplotlib.pyplot as plt

plt.figure(1) # the first figure

plt.subplot(211) # the first subplot in the first figure

plt.plot([1,2,3])

plt.subplot(212) # the second subplot in the first figure

plt.plot([4,5,6])

plt.figure(2) # a second figure

plt.plot([4,5,6]) # creates a subplot(111) by default

plt.figure(1) # figure 1 current; subplot(212) still current

plt.subplot(211) # make subplot(211) in figure1 current

plt.title('Easy as 1,2,3') # subplot 211 title

你可以使用clf()和cla()命令来清空当前figure和当前axe。

如果你创建了许多图,你需要显示的使用close()命令来释放该图所占用的内存,仅仅关闭显示在屏幕上的图是不会释放内存空间的。

处理文本

text()命令可以用来在任意位置上添加文本,xlabel(),ylabel(),title()可以用来在X轴,Y轴,标题处添加文本。

import numpy as np

import matplotlib.pyplot as plt

mu, sigma = 100, 15

x = mu + sigma * np.random.randn(10000)

# the histogram of the data

n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)

plt.xlabel('Smarts')

plt.ylabel('Probability')

plt.title('Histogram of IQ')

plt.text(60, .025, r'$\mu=100,\ \sigma=15$')

plt.axis([40, 160, 0, 0.03])

plt.grid(True)

每个text()命令都会返回一个matplotlib.text.Text实例,就像之前处理曲线一样,你可以通过使用setp()函数来传递关键词参数来定制文本的属性。

t=plt.xlabel('my data',fontsize=14,color='red')

在文本中使用数学表达式

matplotlib在任何文本中都接受Text表达式。

Tex表达式是有两个dollar符号环绕起来的,比如

的Tex表达式如下

plt.title(r'$\sigma_i=15$')

参考文献:

python中的matplotlib.pyplot_Python matplotlib简介 Pyplot教程相关推荐

  1. python使用方法-在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  2. python脚本怎么使用_在Python中使用next()方法操作文件的教程

    next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如Re ...

  3. Python中Collections模块的Counter容器类使用教程

    Python中Collections模块的Counter容器类使用教程 1.collections模块 collections模块自Python2.4版本开始被引入,包含了dict,set,list, ...

  4. Python中optionParser模块的使用方法实例教程

    Python中optionParser模块的使用方法实例教程 转载  2014-08-29   投稿:shichen2014    我要评论 这篇文章主要介绍了Python中optionParser模 ...

  5. lambda在python_在Python中使用lambda高效操作列表的教程

    介绍 lambda Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字,不然会报错 result = lambda x: x * x result(2) # ...

  6. python模块matplotlib.pyplot用法_Python matplotlib简介 Pyplot教程

    matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建 ...

  7. python中的常量是指_python入门教程04-01(python语法入门之变量)

    上一课我们学习了编程语言与python介绍,我们接下来的任务就是学习python语法入门的课程了. 本章的主题是先带大家了解下语法入门介绍,然后重点介绍python变量. 一 引入 我们学习pytho ...

  8. python中find函数的使用方法_Python教程-String 字符串使用教程

    Python 语言中的String 在Python中,String代指以下特点: 代表Unicode字符的字节数组 用单引号或双引号引起来 无限长度 Python 中 String 字符串定义方式 $ ...

  9. python中的matplotlib.pyplot_python matplotlib中axes与axis的区别?

    1.axes subplot axis 先说第一个疑惑 Axes - Subplot - Axis 之间到底是个什么关系? 因为我是努力在看英文的教程,所以刚开始对axes和axis是基本搞不清的,一 ...

最新文章

  1. Bzoj2440 完全平方数
  2. python 获取 文件修改时间 距离 当前时间 天数 秒数
  3. 微信公众号开发入门教程第一篇
  4. python 日期_python日期操作
  5. C++ 如何判断所调用的重载函数
  6. java移动接口发短信_天天都会写接口(interface),但它的用途和好处有多少人能说得清楚?
  7. CI项目设计Redis队列
  8. mysql中订单产品名,Ecshop后台订单列表增加”商品名”检索字段
  9. android gridview 数据绑定,Android GridView数据绑定
  10. RTLviewer与TechnologyMapViewer的区别?
  11. PCIE学习笔记(五)PIO例程设计与仿真分析
  12. Andorid Activity的本质是什么
  13. 【vue开发基础】之使用阿里巴巴矢量图标库
  14. java生成树形Excel_poi从excel中读取父子关系型(树形)数据结构到数据库
  15. 偏财入财库大富_偏财入库无人不富是什么意思
  16. 删除无效的“设备和驱动器”
  17. 【微信小程序控制硬件③】 从软件到硬件搭建一个微信小程序控制esp8266的项目,自定义通讯协议,为面试职位和比赛项目加分!
  18. 解决win10搜索框不能用的问题
  19. 我在校园自动打卡autojs脚本
  20. 剑灵系统推荐加点_新版剑灵怎么加点(2019剑灵技能加点在哪里)

热门文章

  1. 如何在Rational Rose中画接口图
  2. 2022年全球市场HPV基因分型检测试剂盒总体规模、主要生产商、主要地区、产品和应用细分研究报告
  3. 如何在 Linux 系统下检测硬盘上的坏道和坏块
  4. asm (“ NOP 5“)详解
  5. 正式推出Linux Kernel内核5.19
  6. Labview VISA 读取串口
  7. Mycat读写分离查询数据不一致问题,查询强制走主库
  8. 1、non-finite loss, ending training tensor(nan, device=‘cuda:0‘,2、‘LogSoftmaxBackward3、Function ‘MulB
  9. RTOS——桌面mini网络时钟
  10. 华为手机的定价,恐怕连苹果都叹一声服