Python中常用的可视化工具Matplotlib简单入门

Matplotlib是一个Python 2D绘图库和一些基本的3D图表,可以生成各种格式图片。Matplotlib可用于Python脚本,Python shell,Jupyter笔记本,Web应用程序服务器等等。

创新互联公司专注于网站建设|网页维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都发电机回收等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身定制品质网站。

Matplotlib是约翰·亨特(John Hunter,1968-2012)的心血结晶,他和许多贡献者一起投入了不可估量的时间和精力来制作一套全球数千名科学家使用的软件。

查看Matplotlib 版本

 
 
 
  1. >>> import matplotlib 
  2.  
  3. >>> matplotlib.__version__ 
  4.  
  5. '3.0.3' 

在Python 中调用Matplotlib,通常使用 import matplotlib.pyplot 调用Matplotlib 集成的快速绘图 pyplot模块。

Figure(整个图像)

在任何绘图之前,需要一个Figure对象,可以理解成需要一张画板才能开始绘图。

 
 
 
  1. import matplotlib.pyplot as plt 
  2.  
  3. fig = plt.figure() 

在Matplotlib中,整个图像为一个Figure 对象。Figure对象中可以包含一个或者多个Axes对象,每个Axes 对象都是一个拥有自己坐标系统的绘图区域。

Axes(轴线)

在拥有Figure对象之后,在作画前还需要轴,没有轴的话就没有绘图基准,所以需要添加Axes。也可以理解成为真正可以作画的纸。

 
 
 
  1. ax = fig.add_subplot(111) 
  2.  
  3. ax.set(xlim=[0, 5], ylim=[0, 6], title='An Example Axes', 
  4.  
  5. ylabel='Y-Axis', xlabel='X-Axis') 
  6.  
  7. plt.show() 

上述代码,在一幅图上添加了一个Axes,然后设置了这个Axes的X轴以及Y轴的取值范围,以及一些文本信息。效果如下:

Matplotlib下, 一个 Figure 对象可以包含多个子图(Axes),可以使用 subplot() 快速绘制,其调用形式如下 :

 
 
 
  1. subplot(numRows, numCols, plotNum) 
  • 图表的整个绘图区域被分成 numRows 行和 numCols 列;
  • 然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1;
  • plotNum 参数指定创建的 Axes 对象所在的区域;

对于上面的fig.add_subplot(111)就是添加Axes的,参数的解释的在画板的第1行第1列的***个位置生成一个Axes对象来准备作画。

也可以通过fig.add_subplot(2, 2, 1)的方式生成Axes,前面两个参数确定了面板的划分。

如果 numRows, numCols 和 plotNum 这三个数都小于 10 的话, 可以把它们缩写为一个整数, 例如 subplot(221) 和 subplot(2,2,1) 是相同的。

subplot 在 plotNum 指定的区域中创建一个轴对象。如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除。

Multiple Axes 多个子图

下面的一次性生成所有 Axes:

简单总结一下

  • 在最顶层的是画布,称之为figure;
  • 在画布上可以在不同的区域上绘制,这些区域称之为subplot;

每一个子图区域,又可以做如下划分:

  • axis 也就是x,y坐标轴;
  • tick 也就是每一个坐标轴的刻度;
  • label 也就是坐标轴上的标签;
  • title 也就是每一个子图的标题;
  • data 是输入的数据绘制出的图像;

Matplotlib 绘图演示代码

将这个图像划分成8个子区域,每个子区域绘制一个不同的图像。

 
 
 
  1. import numpy as np  
  2. import matplotlib.pyplot as plt  
  3. x=[1,2,3,4]  
  4. y=[3,5,10,25]  
  5. # 创建子图  
  6. plt.subplot(241)  
  7. plt.plot(x,y)  
  8. plt.title("plot")  
  9. plt.subplot(242)  
  10. plt.scatter(x, y)  
  11. plt.title("scatter")  
  12. plt.subplot(243)  
  13. plt.pie(y)  
  14. plt.title("pie")  
  15. plt.subplot(244)  
  16. plt.bar(x, y)  
  17. plt.title("bar")  
  18. plt.subplot(245)  
  19. plt.boxplot(y, sym="o")  
  20. plt.title("box")  
  21. # sin/cos 图像  
  22. plt.subplot(246)  
  23. x = np.linspace(0, np.pi)  
  24. y_sin = np.sin(x)  
  25. y_cos = np.cos(x)  
  26. plt.plot(x, y_sin)  
  27. plt.plot(x, y_cos)  
  28. # g-- 设置线条样式和颜色  
  29. plt.subplot(247)  
  30. plt.plot(x, y_sin, 'g--')  
  31. plt.title("sin")  
  32. # 加载本地图片  
  33. import matplotlib.image as mpimg  
  34. img=mpimg.imread('666.jpg')  
  35. plt.subplot(248)  
  36. plt.imshow(img)  
  37. plt.title("cool...") 
  38.  plt.show() 

网站标题:Python中常用的可视化工具Matplotlib简单入门
网页URL:http://www.shufengxianlan.com/qtweb/news31/267631.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联