从一副图的绘制了解绘图的常用操作

1. 绘制一副普通的曲线图

默认的plot(x,y,format_string,**kwargs)方法就会绘制一副曲线图,他的参数如下

x = np.linspace(-np.pi,np.pi,256)
plt.plot(x,np.sin(x))
plt.plot(x,np.cos(x))

上面3行代码就可以绘制一个图了

下载

还可以更短

plt.plot(x,np.sin(x),'b-',x,np.cos(x),'r-')

img

这样一下就可以绘制两组甚至多组数据

2. 修改颜色和线宽

颜色可以使用format_string来修改,线宽可以使用另外一个参数lw来修改,lw其实就是linewidth的缩写,可以改成这样

plt.plot(x,np.sin(x),'b-',lw=3)
plt.plot(x,np.cos(x),'r-',lw=3)

img

图片就变成这样了,matplotlib支持的颜色如下,也可以使用argb来配色

颜色字符 说明 颜色字符 说明
‘b’ blue 蓝色 ‘y’ yellow 黄色
‘g’ green 绿色 ‘k’ black 黑色
‘r’ red 红色 ‘w’ white 白色
‘c’ cyan 青绿色 ‘#rrggbb’ RGB颜色
‘m’ magenta 洋红色 ‘0.8’ 灰度值

支持的线的风格如下

样式字符 说明 样式字符 说明
‘-‘ 实线风格 ‘–’ 虚线风格
‘-.’ 点划线风格 ‘:’ 虚线风格
‘’ ‘ ‘ 无线条

支持的标记风格如下

标记字符 说明 标记字符 说明
‘.’ 点标记 ‘,’ 像素标记
‘o’ 圆圈标记 ‘v’ 下三角标记
‘^’ 上三角标记 ‘<’ 左三角标记
‘>’ 右三角标记 ‘1’ 下花三角标记
‘2’ 上花三角标记 ‘3’ 左花三角标记
‘4’ 右花三角标记 ‘s’ 正方形标记
‘p’ 五边形标记 ‘*’ 星标记
‘h’ 六边形1标记 ‘H’ 六边形2标记
‘+’ 十字标记 ‘x’ x标记
‘D’ 菱形标记 ‘d’ 瘦菱形标记
垂直线标记 ‘_’ _标记

处理支持使用format_string的方式设置线的样式,他还支持单独设置样式颜色对应color参数,线的样式linestyle对应ls,标记对应marker

#plt.plot(x,np.sin(x),'b_',marker='o')
#plt.plot(x,np.cos(x),'r:',marker='^')

plt.plot(x,np.sin(x),color='b',ls='-',marker='o')
plt.plot(x,np.cos(x),color='r',ls='--',marker='^')

img

3. 调整坐标轴的范围

调整坐标轴一般要用到xlim()ylim()函数,他们都传入两个参数分别x轴的最大值和最小值,y轴的最大值和最小值,

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)

就可以得到下面这幅图

img

4. 修改轴刻度

修改轴刻度使用xticksyticks,他们可以传入一个列表(只要可迭代就行)的一个数据,然后matplotlib会自动计算设置的刻度位置,如

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])

img

就可以设置x的刻度

与此同时可以使用别名来代表x轴的位置,这需要传入两个列表,如

#plt.plot(x,np.sin(x),'b_',marker='o')
#plt.plot(x,np.cos(x),'r:',marker='^')

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])

这样可以使用更加常见的的方式代替x轴坐标

5. 设置图例

设置图例在多个图时候显得尤为重要,设置图例一般使用legend()函数来实现,当然也可以在绘图的时候加入一个label参数来实现

plt.plot(x,np.sin(x),color='b',ls='-',label='sin')
plt.plot(x,np.cos(x),color='r',ls='--',label='cos')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])
plt.legend()

img

当然也可以这样

plt.plot(x,np.sin(x),color='b',ls='-')
plt.plot(x,np.cos(x),color='r',ls='--')

plt.xlim(-4,4)
plt.ylim(-2,2)
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\frac{\pi}{2}$','0',r'$\frac{\pi}{2}$',r'$\pi$'])
plt.legend(['sin','cos'],loc='best')

这种的效果跟上面的效果是一样的,只是要注意顺序

🌹💗正文结束💗🌹