matplotlib

您所在的位置:网站首页 正弦函数和余弦函数相位差 matplotlib

matplotlib

2023-12-27 21:20| 来源: 网络整理| 查看: 265

一.导入模块 import matplotlib.pyplot as plt import numpy as np plt.rcParams['font.sans-serif']=['SimHei'] # 用于正常显示中文标签 plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号 二.创建数据

1.从-pi到pi平均取256个点

#获取x坐标 X=np.linspace(-np.pi,np.pi,256,endpoint=True)

2.根据X的值,求正弦和余弦函数

#获取y坐标 sin,cos=np.sin(X),np.cos(X) 三.开始画图

1.画正弦,余弦函数图

plt.plot(X,sin,"b-",lw=2.5,label="正弦") plt.plot(X,cos,"r-",lw=2.5,label="余弦") ''' X: x轴 sin: y轴 cos: y轴 b-: color="blue",linestyle="-"的简写 lw: linewidth '''

这里写图片描述 2.将x,y轴同时拉伸1.5倍

plt.xlim(X.min()*1.5,X.max()*1.5) plt.ylim(cos.min()*1.5,cos.max()*1.5)

这里写图片描述 3.设置x,y轴的坐标刻度

plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$\pi/2$',r'$\pi$']) plt.yticks([-1,0,1])

这里写图片描述 4.获取Axes对象

ax=plt.gca()

5.隐藏右边界和上边界

ax.spines['right'].set_color('none') ax.spines['top'].set_color('none')

这里写图片描述 6.将x,y坐标轴刻度显示到下方位置

ax.xaxis.set_ticks_position('bottom') ax.spines['bottom'].set_position(('data',0))

这里写图片描述 7.平移坐标轴

ax.yaxis.set_ticks_position('left') ax.spines['left'].set_position(('data',0))

这里写图片描述

四.为函数图添加特殊点

1.设定x轴值并找出点坐标位置,根据两点绘制一条直线

t=2*np.pi/3 #设定点x轴值 #第一个列表是x轴坐标值,第二个列表是y轴坐标值 plt.plot([t,t],[0,np.sin(t)],color ='b',linewidth=2.5,linestyle="--") #这两个点坐标分别为(t,0)和(t,np.sin(t)),根据两点画直线l1 plt.plot([t,t],[0,np.cos(t)],color ='r',linewidth=2.5,linestyle="--") #这两个点坐标分别为(t,0)和(t,np.cos(t)),根据两点画直线l2

这里写图片描述 2.用绘制散点图的方法在正弦,余弦函数上标注这两个点的位置

plt.scatter([t,],[np.sin(t),], 50, color ='b') plt.scatter([t,],[np.cos(t),], 50, color ='r')

这里写图片描述 3.为图表添加注释

plt.annotate(r'$\sin(\frac{2\pi}{3})=-\frac{1}{2}$', xy=(t, np.sin(t)), #点的位置 xycoords='data', #注释文字的偏移量 xytext=(50,50), #文字离点的横纵距离 textcoords='offset points', fontsize=13, #注释的大小 arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2")) #箭头指向的弯曲度 plt.annotate(r'$\cos(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$', xy=(t, np.cos(t)), xycoords='data', xytext=(-50,-50), textcoords='offset points', fontsize=13, arrowprops=dict(arrowstyle="->",connectionstyle="arc3,rad=.2"))

这里写图片描述 4.获取x,y轴的刻度,并设置字体

for label in ax.get_xticklabels()+ax.get_yticklabels(): #获取刻度 label.set_fontsize(18) #设置刻度字体大小 label.set_bbox(dict(facecolor='r',edgecolor='g',alpha=0.2)) #set_bbox为刻度添加边框 #facecolor:背景填充颜色 #edgecolor:边框颜色 #alpha:透明度

这里写图片描述 5.显示图例

plt.legend(loc='upper left')

这里写图片描述

第4步添加边框时,一般用以下这个代码,此步骤主要是为了使坐标轴刻度更清晰

label.set_bbox(dict(facecolor='w',edgecolor='None',alpha=0.5))

这里写图片描述

五.重要参数知识 plt

•利用np.linspace(-np.pi,np.pi,256,endpoint=True) 可以快速生产数据 • 通过plt.gca()获得当前的Axes对象ax • 通过plt.xlim()方法来实现图表的留白 • 通过plt.xticks()、plt.yticks() 来设置坐标轴刻度 • 通过plt.annotate() 方法来为图表添加注释 • for label in ax.get_xticklabels() + ax.get_yticklabels(): 方式来遍历图表中的label对象



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3