matplotlib-绘制精美的图标 第一节 快速绘图(I)

matplotlib-绘制精美的图标 第一节 快速绘图(I)

声明:内容全部来自《Python科学计算》(张若愚),仅供学习记录使用。如有兴趣,请尊重知识,购买正版。

Github 链接


使用pyplot模块绘图

matplotlib的pyplot模块提供了与MATLAB类似的绘图函数调用接口,方便用户快速绘制二维图表。


  
  
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: xusworld
  4. @file: FirstExample.py
  5. @time: 2017-05-06 09:37
  6. """
  7. import matplotlib.pyplot as plt
  8. import numpy as np
  9. x = np.linspace( 0, 10, 1000)
  10. y = np.sin(x)
  11. z = np.cos(x** 2)
  12. plt.figure(figsize=( 8, 4))
  13. plt.plot(x,y, label= "$sin(x)$", color= "red", linewidth= 2)
  14. plt.plot(x,z, "b--", label= "$cos(x^2)$")
  15. plt.xlabel( "Times(s)")
  16. plt.ylabel( "Volt")
  17. plt.title( "PyPlot First Example")
  18. plt.ylim( -1.2, 1.2)
  19. plt.legend()
  20. plt.show()




不得不说,python的库十分强大,短短几行代码就能做出来这么精致的图。
不过其中的很多内容对新手当然包括我自己来说都很陌生,下面就一行一行解释一下。

plt.figure(figsize=(8,4))



其他的参数仅仅了解一下,这行代码只设置了 figsize 参数.由于参数num为设定,所以调用figure()创建一个Figure()对象,并且让他成为当前Figure对象。
figsize参数指定Figure对象的宽度和高度,单位为英寸。


plt.plot(x,y, label="$sin(x)$", color="red", linewidth=2)

 
 
plot传送门
创建Figure对象之后,接下来调用plot()在当前的Figure对象中绘图。实际上plot()实在Axes(子图)对象上绘图,如果当前的Figure对象中没有Axes对象,将会位置
创建一个几乎充满整个图表的Axes对象,并且使此Axes对象成为当前的Axes对象。plot()的前两个参数是分别表示X,Y轴数据的对象,这里使用的是NumPy数组。

  • label: 给曲线指定一个标签,此标签将在图示中显示。如果标签字符串的前后有字符‘$’,matplotlib会使用内嵌的LaTeX引擎将其显示为数学公式。
  • color: 指定曲线的颜色。(上面的传送门中有相关的解释)
  • linewidth: 指定曲线的宽度,可以不是整数,也可以使用缩写形式的参数名lw。


plt.plot(x,z,"b--", label="$cos(x^2)$")
直接通参数"b--"指定曲线的颜色和线型。(仔细查看传送门中的内容)


plt.xlabel("Times(s)")
plt.ylabel("Volt")
分别设置 X轴,Y轴的标题文字

plt.title("PyPlot First Example")
设置子图标题

plt.ylim(-1.2, 1.2)
xlim, ylim:分别设置X,Y的显示范围

plt.legend()
显示图示,即图中表示每条曲线的标签(label)和样式的矩形区域。

plt.show()
显示绘图窗口


面向对象方式绘图

matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条,文字,刻度等在内存中都有一个对象与之对应。pyplot模块虽然用法简单,但
并不适合在较大的应用程序中使用,因此这里介绍如何使用matplotlib的面向对象的方式编写绘图程序。

为了将面向对象的绘图库包装成只使用函数的API,pyplot模块的内部保存了当前图表以及当前子图等信息。可以使用gcf()和gca()获得这两个对象,它们分别是
"Get Current Figure"和"Get Current Axes"开头字母的缩写。gcf()获得的是表示图表的Figure对象,而gca()获得的则是表示子图的Axes对象。


  
  
  1. figure = plt.gcf()
  2. axes = plt.gca()
  3. print(figure)
  4. print(axes)
  5. Output
  6. Figure( 640x480)
  7. Axes( 0.125, 0.11; 0.775x0 .77)


 
 
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值