本章目录

  • Figure类和Axes类
    • 1、Figure类
    • 2、Axes类
      • 举例如下:
    • 3、plt./ax./fig的区别

Figure类和Axes类

本文从介绍一下Figure类和Axes类,二者的区别,以及一些实例。

1、Figure类

matplotlib.figure模块包含了Figure类。它是所有绘图元素的顶层容器。Figure对象是通过调用pyplot模块中的fig()函数来实例化的,如下所示。(简单来说,Figure就是给我们画图提供了一个画布,这个画布的参数我们可以通过Figure类进行调整和修改,画布弄好之后才方便在上面作图)

fig = plt.figure()

它有一下几个参数:

参数 解释
figsize (宽,高),是个元组,表示Figure的大小
dpi 每英寸的点数,也就是分辨率
facecolor 画布的颜色
edgecolor 画布的边缘颜色
linewidth 边缘的线宽

下面来具体的看一个实例:

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure(figsize=(8,4),dpi=144,facecolor='r')
ax = fig.add_axes([0,0,0.7,0.7])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

显示结果如下,我们可以看到,这个figure实际是画布的背景,我们画的图是在axes上画的。

2、Axes类

Axes对象是图像中具有数据空间的区域。一个给定的图可以包含许多Axes,但一个给定的Axes对象只能在一个图中。通过调用add_axes()方法将轴对象添加到图形中。它返回axes对象,并在矩形[左,底,宽,高]的位置添加一个轴(效果见此处链接),其中所有的数量都是图形宽度和高度的分数,这里不过多介绍。
以下是axes类的成员函数,它们为绘图添加了不同的元素:
函数1:Legend:axes类的legend()方法为绘图图添加了一个图例。它需要三个参数:

ax.legend(handles, labels, loc)

其中label是一个字符串序列,并处理Line2D或Patch实例的序列。loc可以是一个字符串或一个整数,指定图例的位置。

函数2:axes.plot(),这是axes类的基本方法,它将一个数组的值与另一个数组的值以线或标记的形式绘制出来。plot()方法可以有一个可选的格式字符串参数来指定线条和标记的颜色、样式和大小。

axes.plot()

颜色:

样式:

线型:

举例如下:

例1:

import matplotlib.pyplot as plt
import numpy as npx = np.arange(20)fig = plt.figure()
ax = plt.subplot(111)for i in range(4):ax.plot(x, i * x, label='$y = %ix$' % i)ax.legend(loc=0)plt.show()

显示结果如下,loc为0,系统默认会选择一个最好的位置,label为这些图例的内容

例2:

import matplotlib.pyplot as plt
y = [1, 4, 9, 16, 25,36,49, 64]
x1 = [1, 16, 30, 42,55, 68, 77,88]
x2 = [1,6,12,18,28, 40, 52, 65]
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
l1 = ax.plot(x1,y,'ys-') # solid line with yellow colour and square marker
l2 = ax.plot(x2,y,'go--') # dash line with green colour and circle marker
ax.legend(labels = ('tv', 'Smartphone'), loc = 'lower right') # legend placed at lower right
ax.set_title("Advertisement effect on sales")
ax.set_xlabel('medium')
ax.set_ylabel('sales')
plt.show()

显示结果如下:

3、plt./ax./fig的区别

在matplotlib中,有两种画图模式:

一种是plt.系列,这个plt.提供了一些基本的函数,可以画一些简单的图,如果你想要精细的画图,这种画图模式就不得行了。于是,有了第二种方法。

另一种是fig,ax = plt.subplots(),这种是通过axes来画的,通过指定figure和axes,对axes进行单独操作。建议画图都用这种。

为了更好的说明我们的参数和图的对应关系,见下图:(点此查看官网解释)

下面看官网对上图的整体解释:

整个人物(标记为外红框)。图中记录了所有的子Axes、少量的 "特殊 "艺术家(标题、图例等)和画布。不要太担心画布,它是至关重要的,因为它是实际做画的对象,让你得到你的剧情,但作为用户,它对你来说多少是看不见的)。一个图形可以有任何数量的Axes,但为了有用,至少应该有一个。
通俗解释: 红外框的就是画布,要在画布上进行创作,这个画布上可以有一定数量的Axes,就是图中蓝色线框住的部分,你需要在这个画布上画多少图,那么就需要有多少个Axes,比如,如果你的figure有subplot,也就是子图的画,每个子图就是一个Axes。

官网对上图中的Axes的解释:

这就是你所认为的 “一个图”,它是图像中具有数据空间的区域(标记为蓝色内框)。一个给定的图可以包含许多Axes,但一个给定的Axes对象只能在一个图中。Axes包含两个(如果是3D,则是三个)Axis对象(要注意Axes和Axis之间的区别),它负责数据的限制(数据限制也可以通过set_xlim()和set_ylim()Axes方法来控制)。每个Axes都有一个标题(通过set_title()设置),一个x-label(通过set_xlabel()设置)和一个y-label(通过set_ylabel()设置)。
**通俗解释:**就是Axes很吊,可以修改设置的变量非常多。

官网对上图中Axis的解释:

这些是类似数字线的对象(绿色圈出)。它们负责设置图形限制和生成tick(轴上的标记)和ticklabels(标记tick的字符串)。标记的位置由Locator对象决定,ticklabel字符串由Formatter格式化。正确的Locator和Formatter的组合可以对tick位置和标签进行非常精细的控制。
通俗解释: Axis,为图中绿色圈出的坐标轴部分,这部分可以进行精细的修改和调整。比如用ax.xaxis和ax.yaxis调整坐标轴。

官网也对Figure对分进行了精细的名称定位,方便修改官网见此。如下图所示:

上图给出了各个部分的名称,也可以说是关键字,方便我们查询调整。

3、plt.figure()和Axes类相关推荐

  1. python打开figure对象_Python ——绘图 plt.figure()的使用

    1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...

  2. matplotlib之疑难点figure、axes

    matplot是python经常使用的一个数据可视化库,里面包含了很多方便的函数方法. 1. plt.figure() 首先展示一个最简单的画线函数plot(),绘制一条直线. import matp ...

  3. Matplotlib axes类使用详解

    Matplotlib axes类使用详解 Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域.在一个给定的画 ...

  4. plt.figure()的使用

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37362454/article/ ...

  5. [Python]plt.figure()、plt.subplot() 、plt.subplots()函数

    plt.figure() 创建自定义图像 语法 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, fra ...

  6. python plt画图_【Python】 【绘图】plt.figure()的使用

    1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...

  7. python——plt.figure()画子图(双轴图)双Y轴实例

    话对比图,如果两个数量级的纵坐标,我们要进行趋势比较,放在同一坐标轴,某一个往往被压缩的的很小.所以需要左右双Y轴画图. 1.随便获取数列,对应的索引化成一样就可以了,下面是量化的数据处理,可以不用看 ...

  8. python matplotlib fig = plt.figure() fig.add_subplot()

    一.matplotlib.pyplot.figure() Create a new figure, or activate an existing figure. matplotlib官网 功能: 创 ...

  9. Matplotlib——数据可视化plt.plot、plt.figure、

    参考:(下图来自)https://blog.csdn.net/qiurisiyu2016/article/details/80187177 数据可视化函数plt.plot(x,y,ls,lw,c,ma ...

  10. python plt figure_【Python】 【绘图】plt.figure()的使用

    1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...

最新文章

  1. Angular 选项卡
  2. 离散数学 关系和有向图
  3. Hexo博客NexT主题美化之顶部加载进度条
  4. mysql+drdb+HA
  5. Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字
  6. “小罐茶大师作”20亿元销售额难掩虚假宣传本质
  7. 前端学习(2346):使用脚手架工具
  8. 分布式资本沈波:未来区块链杀手级应用将出现在“+区块链”
  9. 51单片机之定时器\计数器的工作原理
  10. 基于JAVA的在线图书销售系统
  11. DEDE_5.7星星评分插件首发!
  12. 蓝牙AVRCP协议常见数据包分析
  13. L1-020. 帅到没朋友
  14. java 整型常量_使用javap深入理解Java整型常量和整型变量的区别
  15. DBPedia知识图谱详细介绍
  16. fatal: unable to access ‘‘: Failed to connect to 27.0.0.1 port 7890 after 2097 ms:Connection
  17. [调研] 人脸/车牌脱敏 调研
  18. VUE搭建云音乐播放器(App版本)
  19. df.pivot函数用法
  20. mac苹果电脑删除顽固残留软件图标

热门文章

  1. HadoopLearning
  2. 数据--第47课 - 查找的概念
  3. 凸优化第四章凸优化问题 4.2 凸优化
  4. 凸优化第四章凸优化问题 4.1 优化问题
  5. Keras中CNN联合LSTM进行分类
  6. Android 详解自定义View抽奖转盘
  7. EthBox以太坊开发套件,一键安装部署以太坊开发环境
  8. docker深入2-API示例
  9. 建站篇-用户认证系统-管理员登陆后台
  10. 开发工具 之 PowerDesigner