AI智能
改变未来

02.Matplotlib-综合演练

import numpy as npimport matplotlib .pyplot as plt# 处理中文正常显示plt.rcParams[\'font.sans-serif\'] = [\'FangSong\']# 处理负号显示plt.rcParams[\'axes.unicode_minus\']=False

step1 创建三角函数图像

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图plt.plot(x,C)plt.plot(x,S)plt.show()

step2 改变线条的颜色与宽度

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图plt.plot(x,C,color=\'blue\',linewidth=2.5)plt.plot(x,S,\'r\',lw=2.5)plt.show()

step3 调整坐标轴,让x,y轴的坐标数据自定义

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​plt.plot(x,C,color=\'blue\',linewidth=2.5)plt.plot(x,S,\'r\',lw=2.5)plt.show()

step4 修改坐标轴 与3.14相关

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​# plt.xticks([]) 设置显示的刻度值plt.xticks([np.linspace(-np.pi,np.pi,5)])plt.xticks([-1,0,1])​plt.plot(x,C,color=\'blue\',linewidth=2.5)plt.plot(x,S,\'r\',lw=2.5)plt.show()

step5 修改坐标轴与π相关

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​#plt.xticks([刻度值], [一一对应的显示信息]) 设置显示的刻度值# r\'$\\pi$\' 是 π# plt.xticks(np.linspace(-np.pi,np.pi,5),[\'-π\',\'-π/2\',\'0\',\'π/2\',\'π\'])plt.xticks( np.linspace(-np.pi,np.pi,5),[r\'-$\\pi$\',r\'-$\\pi$/2\',\'0\',\'π/2\',\'π\'])plt.yticks([-1,0,1])​plt.plot(x,C,color=\'blue\',linewidth=2.5)plt.plot(x,S,\'r\',lw=2.5)plt.show()

step6 把坐标轴放到中间

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​# plt.xticks([刻度值], [一一对应的显示信息]) 设置显示的刻度值# r\'$\\pi$\' 是 π# plt.xticks(np.linspace(-np.pi,np.pi,5),[\'-π\',\'-π/2\',\'0\',\'π/2\',\'π\'])plt.xticks( np.linspace(-np.pi,np.pi,5),[r\'-$\\pi$\',r\'-$\\pi$/2\',\'0\',\'π/2\',\'π\'])plt.yticks([-1,0,1])​plt.plot(x,C,color=\'blue\',linewidth=2.5)plt.plot(x,S,\'r\',lw=2.5)​# 坐标轴位置ax=plt.gca() # 获取的是AxesSubplot 对象# 把右边和上面都设置为不可见ax.spines[\'right\'].set_color(\'none\')ax.spines[\'top\'].set_color(\'none\')# 把下边和左边移动到坐标原点,(\'data\',0)ax.spines[\'bottom\'].set_position((\'data\',0))ax.spines[\'left\'].set_position((\'data\',0))# plt.show()

step7 加入图例

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​# plt.xticks([刻度值], [一一对应的显示信息]) 设置显示的刻度值# r\'$\\pi$\' 是 π# plt.xticks(np.linspace(-np.pi,np.pi,5),[\'-π\',\'-π/2\',\'0\',\'π/2\',\'π\'])plt.xticks( np.linspace(-np.pi,np.pi,5),[r\'-$\\pi$\',r\'-$\\pi$/2\',\'0\',\'π/2\',\'π\'])plt.yticks([-1,0,1])​plt.plot(x,C,color=\'blue\',linewidth=2.5,label=\'cos\')plt.plot(x,S,c=\'r\',lw=2.5,label=\'sin\')​# plt.legend(loc=\'upper right\') 组合 upper lower left right centerplt.legend()​# 坐标轴位置ax=plt.gca() # 获取的是AxesSubplot 对象# 把右边和上面都设置为不可见ax.spines[\'right\'].set_color(\'none\')ax.spines[\'top\'].set_color(\'none\')# 把下边和左边移动到坐标原点,(\'data\',0)ax.spines[\'bottom\'].set_position((\'data\',0))ax.spines[\'left\'].set_position((\'data\',0))plt.show()

step8 特殊点标注

特殊点标注是几种画图的结合体

# np.linespace()x=np.linspace(-np.pi,np.pi,256,endpoint=True)​# 对 x 进行 cos 计算C=np.cos(x)​# 对 x 进行 sin 计算S=np.sin(x)​# 绘制折线图# plt.xlim(min,max) plt.ylim(min,max) 设置坐标范围plt.xlim(x.min()*1.5,x.max()*1.5)plt.ylim(C.min()*1.5,C.max()*1.5)​# plt.xticks([刻度值], [一一对应的显示信息]) 设置显示的刻度值# r\'$\\pi$\' 是 π# plt.xticks(np.linspace(-np.pi,np.pi,5),[\'-π\',\'-π/2\',\'0\',\'π/2\',\'π\'])plt.xticks( np.linspace(-np.pi,np.pi,5),[r\'-$\\pi$\',r\'-$\\pi$/2\',\'0\',\'π/2\',\'π\'])plt.yticks([-1,0,1])​plt.plot(x,C,color=\'blue\',linewidth=2.5,label=\'cos\')plt.plot(x,S,c=\'r\',lw=2.5,label=\'sin\')​# plt.legend(loc=\'upper right\') 组合 upper lower left right centerplt.legend(loc=\'upper left\')​# 坐标轴位置ax=plt.gca() # 获取的是AxesSubplot 对象# 把右边和上面都设置为不可见ax.spines[\'right\'].set_color(\'none\')ax.spines[\'top\'].set_color(\'none\')# 把下边和左边移动到坐标原点,(\'data\',0)ax.spines[\'bottom\'].set_position((\'data\',0))ax.spines[\'left\'].set_position((\'data\',0))​ax.xaxis.set_ticks_position(\'bottom\')ax.yaxis.set_ticks_position(\'left\')​# ---------标记特殊点  开始------------t=np.pi*2/3  #特殊点x值# 1- 标注cos# 散点图plt.scatter([t],[np.cos(t)],s=50,color=\'blue\')# 折线图 实现虚线连接  前面两个是x值,后两个是y值plt.plot([t,t],[0,np.cos(t)],color=\'blue\',linestyle=\'--\')​# 标注对应的数学值plt.annotate(text=r\'$cos(\\frac{2\\pi}{3})=-\\frac{1}{2}$\',  # \\frac{分子}{分母}xy=(t,np.cos(t)),xycoords=\'data\',xytext=(-60,-50),textcoords=\'offset points\',fontsize=14,arrowprops={\'arrowstyle\':\'->\',\'connectionstyle\':\'arc3,rad=0.2\'})​​# 2- 标注sinplt.scatter([t],[np.sin(t)],s=50,color=\'red\')plt.plot([t,t],[0,np.sin(t)],color=\'red\',linestyle=\'--\')plt.annotate(text=r\'$sin(\\frac{2\\pi}{3})=\\frac{\\sqrt{3}}{2}$\',  # \\frac{分子}{分母}xy=(t,np.sin(t)),xycoords=\'data\',xytext=(30,20),textcoords=\'offset points\',fontsize=14,arrowprops={\'arrowstyle\':\'->\',\'connectionstyle\':\'arc3,rad=0.2\'})​# ---------标记特殊点  结束------------​plt.show()

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 02.Matplotlib-综合演练