目录
范围
1.matplotlib简介
matplotlib 库是 Python 中绘制二维和三维图表的数据可视化工具
特点:
使用简单绘图语句实现复杂绘图效果
以交互式操作实现渐趋精细的图形效果
使用嵌入式 LaTex 输出具有印刷级别的图表、科学表达式和符号文本
对图表的组成元素实现精细化控制
三种绘图接口
pyplot:面向当前图
axes:面向对象
Pylab:沿用 matlab 风格
本篇文章使用plot绘图(展示变量的趋势变化 )展示绘图的基本参数,使用numpy库获得绘图数据(随机),最后出来的图形并非经过仔细思考,一切以展示图形参数为主!!!
使用的库:
import matplotlib.pyplot as plt
import numpy as np
2.图形组成元素的函数用法
plot():展示变量的趋势变化
2.1. figure():背景颜色
plt.figure(figsize=(10, 10))
x = np.linspace(0.05, 10, 1000) # 在0.05到10的区间中,等差选取1000个,端点不属于
y = np.sin(x)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(x, y,
color='red',
ls='-',
label='sinx')
plt.show()
2.2 xlim()和 ylim():设置 x,y 轴的数值显示范围
2.3 xlabel()和 ylabel():设置 x,y 轴的标签文本
2.4 grid():绘制刻度线的网格线
使用方法:plt.grid(linestyle, color)
2.5 axhline():绘制平行于 x 轴额度水平参考线
plt.figure(figsize=(10, 10))
x = np.linspace(0.05, 10, 1000) # 在0.05到10的区间中,等差选取1000个,端点不属于
y = np.sin(x)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(x, y,
color='red',
ls='-',
label='sinx')
plt.xlim(1, 10)
plt.ylim(-1, 1)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.grid(ls=':',
color='blue') # 设置网格,颜色为蓝色
plt.axhline(0.5, color='green', lw=2, label="分割线") # 绘制平行于x轴的水平参考线,绿色,名称
plt.show()
(上图中绿色的线即为axjline()添加的参考线)
2.6 axvspan():绘制垂直于 x 轴的参考区域
plt.axvspan(xmin=2,
xmax=5,
facecolor='r',
alpha=0.2) # 绘制垂直于x轴的参考区域
即得到(注意:此段是区域)
2.7 xticks(),yticks()
获取或设置当前 x 轴或 y 轴刻度位置和标签(即设置 x 或 y 轴的标 签)
可以理解为设置xilim和ylim一样的效果,但可以指定范围和距离
plt.xticks(list(range(0, 12, 1))) # 调整刻度范围和刻度标签
注意看x轴,从原来的0~10到现在的0~11,可以通过设置第三个参数设置步长,这里设置为1
2.8 annotate():添加图形内容细节的指向型注释文本
函数方法:plt.annotate()
s:注释文本内容
xy:被注释的坐标点
plt.annotate('local',
xy=(2, 1),
xytext=(0.5, 0.5),
weight='bold',
color='red',
xycoords="data",
arrowprops=
dict(arrowstyle="->", connectionstyle='arc3', color='b'),
bbox=
dict(boxstyle="rarrow",
pad=0.6,
fc="yellow",
ec='k',
lw=1,
alpha=0.5)
)
这里的黄色箭头和蓝色细长线即为参数方法添加的参数,实际使用过程中根据自己的实际所需使用,可以认为添加对图像的一些解释
2.9 bbox:给标题增加外框
(boxstyle:方框外形;circle:椭圆;darrow:双向箭头;larrow:箭头向左;rarrow:箭
头向右;round:圆角矩形;round4:椭长方形;roundtooth:波浪形边框 1;sawtooth:
2.10 . text():添加图形内容细节的无指向型注释文本(水印)
函数方法:plt.text()
plt.text(1, 1,
"y=sinx",
weight='bold',
color ='b')
这里设置在坐标(1,1)上,即文字下面y=sinx的蓝色字段
2.11. title():添加图形内容的标题
plt.title("正弦函数")
2.12. legend():标示不同图形的文本标签图例
使用方法:plt.legeng()
plt.legend(loc="lower left") # 设置图例位置
2.13 table():向子图中添加表格
3. 完整代码显示
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(10, 10))
x = np.linspace(0.05, 10, 1000) # 在0.05到10的区间中,等差选取1000个,端点不属于
y = np.sin(x)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.plot(x, y,
color='red',
ls='-',
label='sinx')
plt.xlim(1, 10)
plt.ylim(-1, 1)
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.grid(ls=':',
color='blue') # 设置网格,颜色为蓝色
plt.axhline(0.5, color='green', lw=2, label="分割线") # 绘制平行于x轴的水平参考线,绿色,名称
plt.axvspan(xmin=2,
xmax=5,
facecolor='r',
alpha=0.2) # 绘制垂直于x轴的参考区域
plt.axhspan(ymin=(-3**0.5)/2,
ymax=(3**0.5)/2,
facecolor='w',
alpha=0.2)
plt.legend(loc="lower left") # 设置图例位置
plt.annotate('local',
xy=(2, 1),
xytext=(0.5, 0.5),
weight='bold',
color='red',
xycoords="data",
arrowprops=
dict(arrowstyle="->", connectionstyle='arc3', color='b'),
bbox=
dict(boxstyle="rarrow",
pad=0.6,
fc="yellow",
ec='k',
lw=1,
alpha=0.5)
)
plt.xticks(list(range(0, 12, 1))) # 调整刻度范围和刻度标签
plt.text(1, 1,
"y=sinx",
weight='bold',
color ='b')
plt.title("正弦函数")
plt.show()
这串代码用于显示中文字符
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
无论画什么图,最后都得使用plt.show()用于展示图片,否则输出为空
4.折线图的线条风格
-:实线样式
--:短横线样式
-.:点划线样式
::虚线样式
.:点标记
O:圆标记
V:倒三角标记
^:正三角标记
<:左三角标记
>:右三角表示
1:下箭头标记13
2:上箭头标记
3:左箭头标记
4:右箭头标记
S:正方形标记
p:五边形标记
*:星形标记
H:六边形标记
+:加号标记
X:x 标记
D:菱形标记
|:竖直线标记
_:水平线标记
5. 常用颜色缩写
b 蓝色
g 绿色
r 红色
c 青色
m 品红色·
y 黄色
k 黑色
w 白色
6.总结
很多参数有时候用不上,但要知道有,存在即合理,不同参数的作用功能不同,不要任何图都加太多参数,一般有图例、标题,xy轴的范围即可。
无论使用哪个,建议先试试,实践是检验真理的唯一标准!!!
有写的不好的地方希望读者见谅,我也在一步步摸索,有疑问欢迎在评论区讨论
文章出处登录后可见!