企业网站特点和优势,网站建设私单合同,网站域名列表是什么,dnf怎么做钓鱼网站图像是我们最直观的数据表达方式#xff0c;python的matplotlib库可以用来画图。下面来简单总结下matplotlib的使用方法。上篇讲matplot画图中用到的基础对象#xff0c;包括图像Figure#xff0c;平面曲线Line2D#xff0c;坐标轴Axes#xff0c;图例Legend, 注解Annotat…图像是我们最直观的数据表达方式python的matplotlib库可以用来画图。下面来简单总结下matplotlib的使用方法。上篇讲matplot画图中用到的基础对象包括图像Figure平面曲线Line2D坐标轴Axes图例Legend, 注解Annotation, 注释Text
理解这些对象有利于我们更好的用matplot画图。
matplotlib 导入1import matplotlib.pyplot as plt
简单demo1
2
3
4
5
6
7
8x np.linspace(-1, 1, 50)
y 2 * x 1
# 创建图像
plt.figure()
# plot(x,y)画(x,y)曲线
plt.plot(x, y)
# 显示图像
plt.show()基础属性
图像Figure
matplot中图像对应的定义类是matplotlib.figure.Figure
1
2# num 标识编号figsize 8英寸*5英寸dpi图像的dp密度,facecolor背景色白色edgecolor背景色白色
plt.figure(num1, figsize(8,5), dpi100, facecolorw, edgecolorw)
plt.figure()创建了图像,并返回matplotlib.figure.Figure对象这里我们选择隐式处理返回的对象。
平面曲线Line2D
通过plot()方法创建matplotlib.line.Line2D对象
1
2
3
4# 指定曲线的颜色线的宽度线的样式。
plt.plot(x, y1, colorred, linewidth1.0, linestyle--)
# 添加多条曲线
plt.plot(x, y2)
具体的参数可以在matplotlib.pyplot.Line2D的初始化函数里找到
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21def __init__(self, xdata, ydata,
linewidthNone, # all Nones default to rc
linestyleNone,
colorNone,
markerNone,
markersizeNone,
markeredgewidthNone,
markeredgecolorNone,
markerfacecolorNone,
markerfacecoloraltnone,
fillstyleNone,
antialiasedNone,
dash_capstyleNone,
solid_capstyleNone,
dash_joinstyleNone,
solid_joinstyleNone,
pickradius5,
drawstyleNone,
markeveryNone,
**kwargs
):
坐标轴Axes
坐标轴的定义类是matplotlib.Axes
1
2
3
4
5
6
7
8
9
10
11# xlim()和ylim()设置坐标轴范围
plt.xlim((-1, 2))
plt.ylim((-2, 3))
# xlabel()和ylabel()设置坐标轴名称
plt.xlabel(X)
plt.ylabel(Y)
# 借助numpy的linspace()方法设置更复杂的坐标-1到2总共5个坐标点
new_ticks np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
# 也可以指定具体的点和标签值
plt.yticks(ticket[-2, -1.8, -1, 1.22, 3],labels[r$really\ bad$, r$bad$, r$normal$, r$good$, r$really\ good$])我们可以看到这里二维图像默认的坐标轴有四条(上下左右)
更复杂的坐标轴设置
1
2
3
4
5# 获取坐标轴实例
ax plt.gca()
# 隐藏右边和上面的坐标轴
ax.spines[right].set_color(none)
ax.spines[top].set_color(none)调整坐标轴上刻度的位置
1
2# 值可以选择topbottombothdefaultnone
ax.xaxis.set_ticks_position(bottom)
默认的坐标轴之间的连接处类似于矩形我们可以调整坐标轴之间连接处具体的位置
1
2
3# spines指定修改的是哪一条坐标轴,set_position()有好几个重载方法这里用到的是set_position(self, position),其中position参数是一个二维tuple。
# 第一个值是type,可选的type有outward,axes,data.
ax.spines[bottom].set_position((outward, 10))
『outward』数组的第二个值是个数值0的话x轴与y轴的焦点正好在y轴最底部如果n0相当于向y轴负方向移动距离n。
『axes』 数组的第二个值取值范围0.0-1.0,表示将端点放在坐标轴的指定比例的位置
『data』 数组的第二个值就是坐标轴上具体的位置
图例Legend
图例对应着的是 matplot.legend类
1
2
3
4
5
6# 图例的话需要先通过plot()方法创建Line2D对象
l1, plt.plot(x, y1, labellinear line)
l2, plt.plot(x, y2, colorred, linewidth1.0, linestyle--, labelsquare line)
# loc指定位置如图例放在右上角就是locupper right, best表示自动分配最佳位置label表示图例的名称
plt.legend(handles[l1, l2], labels[up, down], locbest)注解Annotation
注解对应着的是 matplot.text.Annotation
1
2
3
4
5
6
7
8
9plt.annotate(r$2x1%s$ % y0,
xy(x0, y0), # 对(1,3)这个点的描述
xycoordsdata, # 基于数据的值来选位置
xytext(30, -30), # xytext(30, -30)表示xy偏差值,
textcoordsoffset points,# 对标注位置的描述
fontsize16,
arrowpropsdict( # 对箭头类型的设置
arrowstyle-,
connectionstylearc3,rad.2)
注释Text
注释对应的定义类是 matplot.text.Text
1
2
3
4
5
6
7
8plt.text(x-3.7,
y3,
sr$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$,
fontdict{
size: 16,
color: r
}
)
通过上面的注释和注解我们再补充一条线段一个点
1
2
3
4
5# 画虚线
plt.plot([x0, x0, ], [0, y0, ], k--, linewidth2.5)
# 画点
plt.scatter([x0, ], [y0, ], s50, colorb)
plt.show()