当前位置:   article > 正文

【Matplotlib】plt.figure()、plt.subplot() 、plt.subplots() 、plt.xticks() 、plt.xlim()和 plt.grid() 六个函数的使用

plt.figure

系列文章目录


 Python中 matplotlib库的学习


目录

系列文章目录

前言

一、 plt.figure()

二、plt.subplot() 

三、plt.subplots() 

四、plt.xticks() 

五、plt.xlim()

六、plt.grid()

总结


前言

Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展。 Pyplot是Matplotlib模块的基于状态的接口,该模块提供了MATLAB-like接口。在Pyplot中可以使用各种图,例如线图,轮廓图,直方图,散点图,3D图等。


一、 plt.figure()

Matplotlib中的 pyplot.figure() 函数的作用就是创建一个图像,一般和plt.subplot() 一起用,下面会讲,subplot 就是创建子图。

先来看一下plt.figure() 的官方文档.

  1. matplotlib.pyplot.figure(num=None,
  2. figsize=None,
  3. dpi=None,
  4. facecolor=None,
  5. edgecolor=None,
  6. frameon=True,
  7. FigureClass=<class 'matplotlib.figure.Figure'>,
  8. clear=False,
  9. **kwargs)

其中:

  • num:图像编号或名称,数字为编号 ,字符串为名称。不指定调用figure时就会默认从1开始。
  • figsize:指定figure的宽和高,单位为英寸
  • dpi参数指定绘图对象的分辨率,即每英寸多少个像素
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框

具体用法可以看下面的代码。

二、plt.subplot() 

在 Matplotlib 中 plt.subplot() 就是用来创建单个子图的。

先来看一下官方文档。

  1. subplot(nrows,
  2. ncols,
  3. sharex,
  4. sharey,
  5. subplot_kw,
  6. **fig_kw)

其中:

  • nrows 表示 subplot 的行数
  • ncols 表示 subplot 的列数
  • sharex 表示 subplot 中 x 轴的刻度,所有的 subplot x 轴应该保持相同的刻度
  • sharey 表示 subplot 中 y 轴的刻度,所有的 subplot y 轴应该保持相同的刻度

subplot可以将figure划分为n个子图,但每条subplot命令只会创建一个子图 ,如果要绘制多个子图,可以考虑使用for 循环。

  1. # 设置数据
  2. x = np.arange(0, 3, 0.1)
  3. y1 = np.sin(np.pi*x)
  4. y2 = np.cos(np.pi*x)
  5. plt.figure(figsize = (10,6), facecolor = 'r', edgecolor = 'y')
  6. # 绘制第一个子图
  7. plt.subplot(211)
  8. plt.plot(x, y1)
  9. # 绘制第二个子图
  10. plt.subplot(212)
  11. plt.plot(x, y2)

输出结果:

 从上面绘制的两个子图可以了解到figure 和 subplot 的基本用法了,要注意每条subplot命令只会创建一个子图

三、plt.subplots() 

在 Matplotlib 中 plt.subplots() 的用法和subplot() 相似,subplots 可以创建多个子图。前面说了每条subplot命令只会创建一个子图,但是subplots 不一样,直接上代码看看。

  1. # 设置数据
  2. x = np.arange(0, 3, 0.1)
  3. y1 = np.sin(np.pi*x)
  4. y2 = np.cos(np.pi*x)
  5. y3 = np.sin(2*np.pi*x)
  6. y4 = np.cos(2*np.pi*x)
  7. # 创建figure
  8. plt.figure(figsize = (10,6), facecolor = 'r', edgecolor = 'y')
  9. # 划分子图
  10. fig,axes=plt.subplots(2,2)
  11. ax1=axes[0,0]
  12. ax2=axes[0,1]
  13. ax3=axes[1,0]
  14. ax4=axes[1,1]
  15. # 绘制4 个子图
  16. ax1.plot(x, y1)
  17. ax2.plot(x, y2)
  18. ax3.plot(x, y3)
  19. ax4.plot(x, y4)
  20. plt.show()

输出结果:

四、plt.xticks() 

在 Matplotlib 中 plt.ticks() 函数 表示的是刻度, plt.xticks() 就表示x 轴刻度,plt.yticks() 就表示y 轴刻度。

其实plt.xticks() 返回两个对象,一个是刻标(locs),另一个是刻度标签,不过这些我们先不了解。只需要知道它是表示刻度的就行。

  1. plt.figure(figsize = (20,10))
  2. plt.subplot(2,3,1)

输出结果:

  1. plt.figure(figsize = (20,10))
  2. plt.subplot(2,3,1)
  3. plt.xticks([]) # 不显示x 轴刻度
  4. plt.yticks([]) # 不显示y 轴刻度

输出结果

从输出结果可以知道, plt.xticks([])  就是表示不显示x 轴的刻度; plt.yticks([])  就是表示不显示y 轴的刻度

  1. plt.figure(figsize = (20,10))
  2. for i in range(3):
  3. plt.subplot(2,3,i+1)
  4. plt.xticks(np.arange(3)) # 设置横坐标为只有01两个刻度

输出结果:ticks 还可以指定显示的刻度,  plt.xticks(np.arange(3)) 就将生成的最后一个图的横坐标设置为只有0、1和2三个刻度 。

五、plt.xlim()

在 Matplotlib中的 plt.xlim() 函数用来显示x轴的作图范围,plt.ylim() 用来显示y轴的作图范围。

  1. # plt.xlim()
  2. # 设置figure
  3. plt.figure(figsize = (10,6))
  4. # 绘制第一个子图
  5. plt.subplot(2,1,1)
  6. plt.plot(x, 2*x)
  7. # 绘制第二个子图
  8. plt.xlim(0, 2) # 限制x 轴作图的范围在(02
  9. plt.subplot(2,1,2)
  10. plt.plot(x, 2*x)
  11. # 显示绘制的图像的y 轴取值范围
  12. plt.ylim()

输出结果:

可以看见,如果plt.xlim() 在绘图之前用会限制绘图的范围,如果绘图完成后用,则会输出x轴的范围值;对于plt.ylim() 也是一样的。

六、plt.grid()

在 Matplotlib中的 plt.grid() 函数 就是绘制网格的意思,它的作用就是可以给图生成网格。

先来看一下官方文档

  1. matplotlin.pyplot.grid(b,
  2. which,
  3. axis,
  4. color,
  5. linestyle,
  6. linewidth,
  7. **kwargs)

其中:

  • b  布尔值。就是是否显示网格线的意思。 1=True=默认显示网格;0=False=不显示网格
  • which 取值为'major', 'minor', 'both'。 默认为'major'
  •  axis  取值为‘both’, ‘x’,‘y’。就是以什么轴为刻度生成网格

  • color  这就不用多说了,就是设置网格线的颜色。可以直接用c来代替color。

  •   linestyle :也可以用ls来代替linestyle, 设置网格线的风格,是连续实线,虚线或者其它不同的线条。比如:   '-'  、 '--'  等

  •   linewidth  设置网格线的宽度

    让我们直接写代码,来看看plt.grid() 怎么用。

  1. plt.figure(figsize = (20,10))
  2. for i in range(3):
  3. plt.subplot(2,3,i+1)
  4. plt.grid(b = True, axis = 'both', color = 'red', linestyle = '-', linewidth = 3)

输出结果:

 可以看见plt.grid() 默认是会生成网格的。

  1. plt.figure(figsize = (20,10))
  2. for i in range(3):
  3. plt.subplot(2,3,i+1)
  4. plt.grid(b = 1, axis='y', c = 'y', ls = '--')

输出结果:

 设置参数1 和 True 的效果是一样的,后面axis 表示画布,'x'就是绘制x 轴, 'y' 就是绘制y 轴。


总结

Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展。本文主要讲解了其中的

plt.figure()plt.subplot() plt.subplots() plt.xticks() plt.xlim()和 plt.grid() 六个函数的使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/854974
推荐阅读
  

闽ICP备14008679号