VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 初识人工智能(一):数据分析(一):matplotlib绘图库

1. matplotlib绘图库

1.1 什么是matplotlib

matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。是最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建。

1.2 安装matplotlib

python -m pip install -U pip setuptools

python -m pip install matplotlib

在cmd窗口下,执行此命令。 

1.3 基本使用

假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15],我们现在使用matplotlib画一个折线图。


  1. #导入pyplot
  2. from matplotlib import pyplot as plt
  3. #数据在x轴的位置,是一个可迭代对象
  4. x = range(2,26,2)
  5. #数据在y轴的位置,是一个可迭代对象
  6. y = [15,13,14.5,17,20,25,26,26,24,22,18,15]
  7. #x轴和y轴的数据一起组成了所有要绘制出的坐标
  8. #分别是(2,15),(4,13)(6,14.5)...
  9. #传入x和y,通过plot绘制出折线图
  10. plt.plot(x,y)
  11. #在执行程序的时候展示图形
  12. plt.show()

运行结果:

我们看一下图形,可以看到存在几个问题。

  1. 设置图片大小(高清图片)。
  2. 保存到本地。
  3. 描述信息,比如x轴和y轴表示什么,这个图表示什么。
  4. 调整x或者y的刻度的间距。
  5. 线条的样式(例如颜色,透明度等)。
  6. 标记出特殊的点(例如最高点和最低点)。
  7. 给图片添加一个水印(防伪、防盗用)。

1.4 解决存在的问题

1.4.1 设置图片大小及保存

我们可以通过figure方法来控制图片的大小。

Figure图形图标的意思,在这里指的就是我们画的图。通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例。在图像模糊的时候可以传入dpi参数,让图片更加清晰。

调用savefig方法保存图片,可以保存为svg这种矢量图格式,放大不会有锯齿。


  1. # coding=utf-8
  2. from matplotlib import pyplot as plt
  3.  
  4. x = range(2,26,2)
  5. y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
  6. #设置图片大小
  7. plt.figure(figsize=(20,8),dpi=80)
  8. #绘图
  9. plt.plot(x,y)
  10. #保存
  11. plt.savefig("./sig_size.png")
  12. #展示图形
  13. plt.show()

运行结果:

这样图片的大小及保存的问题就解决了。 

1.4.2 调整x或者y轴上的刻度

我们可以看到刻度并不精确,所以我们就要设置x轴和y轴的刻度了。

使用xticks和yticks,这两个的传值可以迭代。


  1. # coding=utf-8
  2. from matplotlib import pyplot as plt
  3.  
  4. x = range(2,26,2)
  5. y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
  6. #设置图片大小
  7. plt.figure(figsize=(20,8),dpi=80)
  8. plt.xticks(x)
  9. #绘图
  10. plt.plot(x,y)
  11. #保存
  12. plt.savefig("./sig_size.png")
  13. #展示图形
  14. plt.show()

运行结果:

我们可以看到图形已经精确很多了,但是还不够,所以我们要继续精确。


  1. # coding=utf-8
  2. from matplotlib import pyplot as plt
  3.  
  4. x = range(2,26,2)
  5. y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
  6. #设置图片大小
  7. plt.figure(figsize=(20,8),dpi=80)
  8. plt.xticks(range(2,25))
  9. #绘图
  10. plt.plot(x,y)
  11. #保存
  12. plt.savefig("./sig_size.png")
  13. #展示图形
  14. plt.show()

运行结果:

我们想要再精确就有些麻烦了,因为range方法不能传入小数,否则会报错,所以我们只能换一种方法来表示了。


  1. # coding=utf-8
  2. from matplotlib import pyplot as plt
  3.  
  4. x = range(2,26,2)
  5. y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
  6. #设置图片大小
  7. plt.figure(figsize=(20,8),dpi=80)
  8. #设置x轴的刻度