Matplotlib的详细使用及原理(二)+https://developer.aliyun.com/article/1543861?spm=a2c6h.13148508.setting.16.1fa24f0eFbYRn7
如何绘制lines
绘制直线line 常用的方法有两种
- pyplot方法绘制
- Line2D对象绘制
- pyplot方法绘制
import matplotlib.pyplot as plt x = range(0,5) y = [2,5,7,8,10] plt.plot(x,y)
[]
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) # 创建一个2x2的子图矩阵 axs[0, 0].plot([0, 1], [0, 1]) # 在第一个子图中绘制一条线 plt.show()
2.Line2D对象绘制
import matplotlib.pyplot as plt from matplotlib.lines import Line2D fig = plt.figure() ax = fig.add_subplot(111) line = Line2D(x, y) ax.add_line(line) ax.set_xlim(min(x), max(x)) ax.set_ylim(min(y), max(y)) plt.show()
pyplot.figure().add_subplot
是 Matplotlib 库中的一个方法,用于在图形中添加子图。这个方法通常与 pyplot.figure()
一起使用,以创建一个新的图形对象并添加子图。
此外还可以绘制误差折线图等各种图形。
collections
collections类是用来绘制一组对象的集合,collections有许多不同的子类,RegularPolyCollection, CircleCollection, 分别对应不同的集合子类型。其中比较常用的就是散点图,它是属PathCollection子类,scatter方法提供了该类的封装,根据x与y绘制不同大小颜色标记的散点图,它的构造方法:
Axes.scatter(self, x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=, edgecolors=None, , plotnonfinite=False, data=None, *kwargs)
其中最主要的参数是前5个:
- x:数据点x轴的位置
- y:数据点y轴的位置
- s:尺寸大小
- c:可以是单个颜色格式的字符串,也可以是一系列颜色
- marker: 标记的类型
scatter绘制散点图
x = [0,2,4,6,8,10] y = [10]*len(x) s = [20*2**n for n in range(len(x))] plt.scatter(x,y,s=s) plt.show()
对象容器 - Object container
容器会包含一些primitives
,并且容器还有它自身的属性。
比如Axes Artist
,它是一种容器,它包含了很多primitives
,比如Line2D
,Text
;
Figure容器
matplotlib.figure.Figure是Artist最顶层的container-对象容器,它包含了图表中的所有元素。一张图表的背景就是在Figure.patch的一个矩形Rectangle。
当我们向图表添加Figure.add_subplot()或者Figure.add_axes()元素时,这些都会被添加到Figure.axes列表中。
fig = plt.figure() ax1 = fig.add_subplot(211) # 作一幅2*1的图,选择第1个子图 ax2 = fig.add_axes([0.1, 0.1, 0.7, 0.3]) # 位置参数,四个数分别代表了(left,bottom,width,height) print(ax1) print(fig.axes) # fig.axes 中包含了subplot和axes两个实例, 刚刚添加的
fig = plt.figure() ax1 = fig.add_subplot(211) for ax in fig.axes: ax.grid(True)
Figure容器的常见属性:
Figure.patch属性:Figure的背景矩形
Figure.axes属性:一个Axes实例的列表(包括Subplot)
Figure.images属性:一个FigureImages patch列表
Figure.lines属性:一个Line2D实例的列表(很少使用)
Figure.legends属性:一个Figure Legend实例列表(不同于Axes.legends)
Figure.texts属性:一个Figure Text实例列表
matplotlib.axes.Axes是matplotlib的核心。大量的用于绘图的Artist存放在它内部,并且它有许多辅助方法来创建和添加Artist给它自己,而且它也有许多赋值方法来访问和修改这些Artist。
Axes容器
和Figure
容器类似,Axes
包含了一个patch属性,对于笛卡尔坐标系而言,它是一个Rectangle
;对于极坐标而言,它是一个Circle
。这个patch属性决定了绘图区域的形状、背景和边框。
import numpy as np import matplotlib.pyplot as plt import matplotlib fig = plt.figure() ax = fig.add_subplot(111) rect = ax.patch # axes的patch是一个Rectangle实例 rect.set_facecolor('green')
Axes容器的常见属性有:
artists: Artist实例列表 patch: Axes所在的矩形实例 collections: Collection实例 images: Axes图像
legends: Legend 实例 lines: Line2D 实例 patches: Patch 实例 texts: Text 实例 xaxis:
matplotlib.axis.XAxis 实例 yaxis: matplotlib.axis.YAxis 实例。