1.绘制折线图
from matplotlib import pyplot as plt
x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15]
#设置图片大小
plt.figure(figsize=(12, 8), dpi=80)
#绘图
plt.plot(x,y)
#展示图形
plt.show()
- range函数:range(start, stop[, step])
前两个参数定义x的范围 2≤x<26,第三个参数为步长 默认为1。步长越大,x轴刻度越稀疏。
注意range函数定义的范围默认为左闭右开 - figure函数:figure()
创建一个窗口,figsize:指定窗口大小,单位为英寸。dpi:每英寸像素点的个数,可以理解为清晰程度。dpi越高,图片放大后越清晰。
2.添加刻度
可以看到图片还有一点点瑕疵,x轴和y轴并不能很直观的看到每一点的刻度,所以可以自己设定x轴与y轴刻度范围,在绘图前添加以下代码
# 设置x,y轴刻度
plt.xticks(x[::1]) # 更改x轴步长为1
plt.yticks(range(min(y), max(y)+1)) # 更改y轴为最小值到最大值
3.添加信息
如果想添加x,y轴的标签信息和x轴每个数据的描述信息,可以修改上面代码
plt.xlabel("Num")
plt.ylabel("Age")
_xticks_label = ["No:{}".format(i) for i in range(12)] # 一共12组数据
plt.xticks(x[::1], _xticks_label)
# plt.xticks(x[::1], _xticks_label, rotation='60') # 标签旋转60度
plt.yticks(range(min(y), max(y)+1))
- xticks函数: xticks(ticks, [labels], ** kwargs)
ticks:数组类型,用于设置X轴刻度间隔,也称为步长
[labels]:数组类型,用于设置每个数据的显示标签
**kwargs:用于设置标签字体倾斜度和颜色等外观属性,如 rotation=‘旋转角度’
4.添加网格线
这么多数据虽然有了比较精确的x,y轴刻度,但是不容易分辨出单个数据的准确信息(不可能拿个尺子放在屏幕上一个个对照吧…),所以就需要添加网格线使得可读性更好。再添加以下代码
plt.grid(alpha=0.8, linestyle=':')
- grid函数:grid(b, which, axis, color, linestyle, linewidth, ** kwargs)
grid函数的参数非常多,就简略的说几个参数。
alpha:透明度,范围[0,1]
axis:可以设置为‘x’,‘y’,‘both’,选择哪个轴,则画出哪个轴的网格线,默认为’both’
color:设置颜色,'r’红色,'g’绿色,'b’蓝色
linestyle:设置网格线的风格
完整代码:
from matplotlib import pyplot as plt
x = range(2, 26, 2)
y = [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15]
# 设置图片大小
plt.figure(figsize=(12, 8), dpi=80)
# 绘制图形
plt.xlabel("Num")
plt.ylabel("Age")
_xticks_label = ["No:{}".format(i) for i in range(12)]
plt.xticks(x[::1], _xticks_label)
# plt.xticks(x[::1], _xticks_label, rotation='60')
plt.yticks(range(min(y), max(y)+1))
plt.grid(alpha=0.8, linestyle=':')
plt.plot(x, y)
# 展示图形
plt.show()