matplotlib学习笔记
导入matplotlib库
使用
import matplotlib.pyplot as plt
导入matplotlib库
使用matplotlib创建图像
使用matplotlib绘制出y=x*2+5在(0,50)上的图像
x=np.array([i for i in range(50)])
y=x*2+5
plt.plot(x,y)
plt.show()
得到图像
figure的使用
使用figure语句创建多个窗口
使用plt.figure()语句可以在多个窗口中绘制出各个图像
在不同的plt.figure()语句下使用plt.plot()语句即可在多个窗口中绘制出各个图像
y1=x*2+5
y2=x**10+3*x
plt.figure(num=1)
plt.plot(x,y1)
plt.figure(num=2)
plt.plot(x,y2)
plt.show()
pli.figure()中可填写num 代表figure窗口的号码
得到图像
在同一个figure窗口中绘制多条图像
将多个pli.plot()写在同一个plt.figure()语句下即可在同一个figure窗口中绘制多个图像
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.show()
其中plt.plot(x,y,color,linewidth,linestyle)中对应线条的颜色、宽度、样式
其中样式可以选择
‘-’, ‘–’, ‘-.’, ‘:’, ‘None’, ’ ', ‘’, ‘solid’, ‘dashed’, ‘dashdot’, ‘dotted’
得到图像
修改坐标轴
限定坐标轴范围
使用plt.xlim() 和 ply.ylim()语句来限定x和y轴的范围
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.show()
得到图像
添加坐标轴的说明
使用plt.xlabel()与plt.ylabel()语句来添加x和y轴的说明
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
plt.show()
替换坐标轴上点的名称
使用plt.xticks()和plt.yticks()语句修改坐标轴上的名称
括号中可以使用np.linspace()语句进行替换 同时也可以使用二维数组进行替换
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
['one','two','three','four','five'])
plt.show()
得到图像
修改坐标轴的位置
使用到plt.gca()语句
取消坐标轴
使用ax.spines[].set_color(‘none’)语句可以使坐标轴消失
其中中括号中的参数为’top’,‘bottom’,‘left’,'right’分别对应上下左右
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
plt.show()
得到图像
修改坐标轴的位置
首先使用ax.axis.set_ticks_position()语句取消坐标轴当前位置
其中括号中的参数为’top’, ‘bottom’, ‘both’, ‘default’, ‘none’
然后使用ax.spines[].set_position()语句更改坐标轴位置
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.spines['left'].set_position(('data',5))
ax.spines['bottom'].set_position(('data',10))
plt.show()
得到图像
添加legend图例
在plt.plot()语句中添加label语句 添加图例名称
使用plt.legend()语句生成图例
x=np.array([i for i in range(50)])
y1=x*2+5
y2=x**10+3*x
plt.figure()
plt.plot(x,y1,label='first')
plt.plot(x,y2,color='green',linewidth=2.0,linestyle='-.',label='second')
plt.xlim((4,50))
plt.ylim((1,50))
plt.xlabel('x line')
plt.ylabel('y line')
line=np.linspace(5,50,10)
plt.xticks(line)
plt.yticks([5,10,20,40,50],
['one','two','three','four','five'])
ax=plt.gca()
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.xaxis.set_ticks_position('both')
ax.yaxis.set_ticks_position('both')
ax.spines['left'].set_position(('data',5))
ax.spines['bottom'].set_position(('data',10))
plt.legend()
plt.show()
得到图像
绘制散点图
绘制简单的散点图
使用plt.scatter()语句绘制散点图
x=np.array([i for i in range(50)])
y=x*2+5
plt.scatter(x,y)
plt.show()
得到散点图
绘制散点图矩阵
同样使用plt.scatter()语句
n=1000
X=np.random.normal(0,1,n)
Y=np.random.normal(0,1,n)
plt.scatter(X,Y,s=50,alpha=0.5)
plt.show()
得到图像
绘制柱状图
使用plt.bar()语句绘制柱状图
n=10
X=np.arange(n)
X1=np.random.uniform(1,10,n)
Y1=np.random.uniform(1,10,n)
plt.bar(X,Y1)
plt.show()
得到图像