首页编程开发Matplotlib【数据可视化(Matplo...

【数据可视化(Matplotlib篇)】17.Figure对象

本系列文章配套代码获取有以下两种途径:

  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/1jG-rGG4QMuZu0t0kEEl7SA?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Data_Visualization





之前我们绘制的图表在Matplotlib中其实都是位于Figure对象中的,使用plt.figure()函数可以生成一个新Figure对象
因为Figure所有绘图元素的顶级容器(The top level container for all the plot elements.),因此,即使之前我们绘图时没有使用figure()函数,但是matplotlib默认会生成一个Figure对象用于绘制图表。
01

figure()函数


plt.figure()函数的语法如下,如果只是建立默认大小的图表,则可以省略参数,下面将介绍函数内各主要参数的意义

plt.figure(num=None,
          figsize=None,
          dpi=None,
          facecolor=None,
          edgecolor=None,
          frameon=True,
          FigureClass=<class'matplot.figure.Figure'>,
          clear=False,
          **kwargs)

上述函数会创建一个Figure对象,这个对象其实就是一个新的窗口图表,有了这个对象,之后就可以调用OO API执行图表操作。
  • num如果是数字,则是图表编号;如果是字符串,则是图表名称。
  • figsize图表的宽和高(width,height),单位是英寸,默认是(6.4,4.8)。
  • dpi图表分辨率,单位是每英寸多少点,默认是100。dip则是每英寸的像素数,因此要使其具有更高的分辨率,因此应将较低的数字传递给图形。通过figsize和dpi两个参数来设置Figure在屏幕上的尺寸。
  • facecolor图表背景颜色,默认是白色(white)。
  • edgecolor图表边框颜色,默认是白色(white)。
  • frameon布尔值选项,默认是True。如果为False,则会使图形透明
  • FigureClass自定义图表。
  • clear默认为False。如果是True,则将此图表清除。
  • layout使用布局参数为图形指定布局引擎。目前,Matplotlib提供”constrained”, “compressed” 和 “tight”布局引擎。它们可以重新缩放图形内的轴,以防止ticklabels重叠,并且对齐坐标轴,可以在许多情况下节省我们对图形元素(Artists)的手动调整。需要注意的是布局管理器可能会大大减慢图形显示的速度。

02

实例


  • 使用figsizedpifacecolor设定图表样式:
x = np.linspace(0 , 4*np.pi , 200)
y = np.sin(x)

# 设定图表样式
plt.figure(figsize=(5,4) , # 设定图表的大小 
           facecolor='c' ,  # 设定图表的背景
           dpi=150 ,  # 设定图表的分辨率
           frameon=True , # 如果设为False,facecolor则无效果
          )

plt.plot(x,y)

plt.show()
可视化效果如下图所示:

  • 建立多个窗口图表:

如果省略参数,matplotlib会自动为这些图表进行编号。

x = np.linspace(0 , 4*np.pi , 200)

# 建立图表1
plt.figure(num=1,figsize=(5,4),facecolor='c')
plt.plot(x,np.sin(x))

# 建立图表2
plt.figure(num=2,figsize=(5,4),facecolor='m')
plt.plot(x,np.cos(x))

plt.show()
可视化效果如下图所示:



更多内容可以前往官网查看

https://matplotlib.org/stable/


本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments