matplotlib 多图绘制,matplotlib 多个图

  matplotlib 多图绘制,matplotlib 多个图

  当matplotlib绘制多个子图时,我们可以根据自己的想法排列子图的顺序,也可以生成不同数量的子图。详细介绍了matplotlib绘制多个子图,有一定的参考价值,有兴趣的可以看看。

  00-1010多子图的简单理解,用plt.subplot(mnx)分别绘制,用PLT . subplot(m,n)一次性绘制高级和高级汇总

  

目录

 

  在学习matplotlib的时候,肯定有人会想为什么不直接用Excel,origin,软件。事实上,matplotlib绘图在python领域经久不衰的原因是独一无二的。我觉得其中一个亮点就是matplotlib在绘制多个子图的时候,可以按照自己的思路来排列子图的顺序,或者生成不同的子图,类似于前端的web可视化大屏,性能不错。

  

简单了解多子图

 

  # -*-编码: utf-8 -*-

  将matplotlib作为mpl导入

  将matplotlib.pyplot作为plt导入

  t=np.arange(0.0,2.0,0.1)

  s=np.sin(t*np.pi)

  Plt.subplot(2,2,1) #生成两行两列,这是第一个图形

  plt.plot(t,s, b* )

  plt.ylabel(y1 )

  Plt.subplot(2,2,2) #两行两列。这是第二张照片

  plt.plot(2*t,s, r -)

  plt.ylabel(y2 )

  Plt.subplot(2,2,3)#两行两列。这是第三张图片。

  plt.plot(3*t,s, m -)

  plt.ylabel(y3 )

  Plt.subplot(2,2,4)#两行两列。这是第四个数字。

  plt.plot(4*t,s, k* )

  plt.ylabel(y4 )

  plt.show()

  使用plt.subplot()方法生成子图。这些规则总结如下:

  第一个数字是行,第二个数字是列,第三个数字是号(顺序中图的序号)。

  比如224是一个两行两列的子图,这个图是第四个图,所以是第二行第二列的图。

  那么有时候,有些人觉得这样太麻烦了,每次生成都要在绘图程序前面加一行这样的代码,为什么不可以一次性生成我需要的画布呢?答案是可以的!

  使用plt.subplots(m,n),可以一次性生成m行n列的字图

  注意前面需要figure和ax进行接收

  调用就和我们数组一样!

  

使用plt.subplot(mnx) 分别绘制

 

  # -*-编码: utf-8 -*-

  将matplotlib作为mpl导入

  将matplotlib.pyplot作为plt导入

  t=np.arange(0.0,2.0,0.1)

  s=np.sin(t*np.pi)

  c=np.cos(t*np.pi)

  图,ax=plt.subplots(2,2) #多行subplots得到的ax数组是二维的。

  ax[0][0]。plot(t,s, r* )

  ax[0][1]。绘图(t*2,s, b -)

  ax[1][0]。plot(t,c, g* )

  ax[1][1]。绘图(t*2,c, y -)

  # -*-编码: utf-8 -*-

  将matplotlib作为mpl导入

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  t=np.arange(0.0,2.0,0.1)

  s=np.sin(t*np.pi)

  c=np.cos(t*np.pi)

  Figure,ax=plt.subplots (1,2,FIG size=(6,2),dpi=120) #一行subplots得到的ax数组是一维的。

  ax[0]。plot(t,s, r* )

  ax[1]。绘图(t*2,s, b -)

  lass="brush:py;"> plt.subplots(nrows=1,ncols=3,figsize=(5,5))

  #plt.subplots(nrows=1,ncols=3)

  # 返回一个figure对象,和一个axesSubplot子图对象的数组

  # 行或者列等于1,返回一个一维数组

  加一个plt.tight_layout()会使得图形更加紧凑

  

plt.tight_layout()

 

  

 

  

plt.subplots(nrows=3,ncols=4) # 如果行和列都大于1,返回1个Figure对象,和1个包含3*4=12个子图对象的矩阵(2维数组)

 

  

 

  

 

  

高级进阶

 

  

plt.subplot(121)

 

  看到上面你会想到什么?会生成怎样的画布呢?

  

 

  下面我就给大家详细的解释一下,为啥会出现这样的画布,首先我的需求是在左边出现一个子图,比较长的,最好是右边两个子图的长度和,那么应该怎么做呢?遇到这样的情况我们仍然需要把这一个平面分成均等分,那么也就是四个。

  当我们画一个左边的图的时候,我们应该把画布想象为一行两列的画布,第一个自然也就是121

  当我们画右边的图形的时候,我们应该把画布想象为两行两列的画布,右边第一个自然就是222,第二个自然就是224。

  下面我们可以多看几个,来验证我们得推论

  

plt.subplot(221)

 

  

 

  

plt.subplot(211)

 

  

 

  

plt.subplot(221)

 

  

 

  

plt.figure(figsize=(12,5))

 

  

 

  

plt.figure(figsize=(16,5))

 

  

 

  

 

  注意这个间隙是自动产生的,如果需要将间隙变的更大,那么就可以取最左边的值和最右边的值

  

plt.figure(figsize=(16,5))

 

  

 

  

 

  

总结

 

  在生成上面案例的时候,我们需要利用Excel进行编排,不然很容易出错的!

  到此这篇关于matplotlib图形整合之多个子图绘制的实例代码的文章就介绍到这了,更多相关matplotlib 多子图绘制内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: