3、plt.figure()和Axes类
本章目录
- 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类相关推荐
- python打开figure对象_Python ——绘图 plt.figure()的使用
1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...
- matplotlib之疑难点figure、axes
matplot是python经常使用的一个数据可视化库,里面包含了很多方便的函数方法. 1. plt.figure() 首先展示一个最简单的画线函数plot(),绘制一条直线. import matp ...
- Matplotlib axes类使用详解
Matplotlib axes类使用详解 Matplotlib 定义了一个 axes 类(轴域类),该类的对象被称为 axes 对象(即轴域对象),它指定了一个有数值范围限制的绘图区域.在一个给定的画 ...
- plt.figure()的使用
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_37362454/article/ ...
- [Python]plt.figure()、plt.subplot() 、plt.subplots()函数
plt.figure() 创建自定义图像 语法 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, fra ...
- python plt画图_【Python】 【绘图】plt.figure()的使用
1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...
- python——plt.figure()画子图(双轴图)双Y轴实例
话对比图,如果两个数量级的纵坐标,我们要进行趋势比较,放在同一坐标轴,某一个往往被压缩的的很小.所以需要左右双Y轴画图. 1.随便获取数列,对应的索引化成一样就可以了,下面是量化的数据处理,可以不用看 ...
- python matplotlib fig = plt.figure() fig.add_subplot()
一.matplotlib.pyplot.figure() Create a new figure, or activate an existing figure. matplotlib官网 功能: 创 ...
- Matplotlib——数据可视化plt.plot、plt.figure、
参考:(下图来自)https://blog.csdn.net/qiurisiyu2016/article/details/80187177 数据可视化函数plt.plot(x,y,ls,lw,c,ma ...
- python plt figure_【Python】 【绘图】plt.figure()的使用
1.figure语法及操作 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, ...
最新文章
- Angular 选项卡
- 离散数学 关系和有向图
- Hexo博客NexT主题美化之顶部加载进度条
- mysql+drdb+HA
- Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字
- “小罐茶大师作”20亿元销售额难掩虚假宣传本质
- 前端学习(2346):使用脚手架工具
- 分布式资本沈波:未来区块链杀手级应用将出现在“+区块链”
- 51单片机之定时器\计数器的工作原理
- 基于JAVA的在线图书销售系统
- DEDE_5.7星星评分插件首发!
- 蓝牙AVRCP协议常见数据包分析
- L1-020. 帅到没朋友
- java 整型常量_使用javap深入理解Java整型常量和整型变量的区别
- DBPedia知识图谱详细介绍
- fatal: unable to access ‘‘: Failed to connect to 27.0.0.1 port 7890 after 2097 ms:Connection
- [调研] 人脸/车牌脱敏 调研
- VUE搭建云音乐播放器(App版本)
- df.pivot函数用法
- mac苹果电脑删除顽固残留软件图标