python坐标轴间隔_使用Python玩转高等数学(5):三角函数

2023-11-04

从三角函数开始,我们使用matplotlib绘制函数图像,matplotlib是图形绘制库,使用matplotlib可以方便的绘制函数图形,以及直方图、条形图、散点图等统计图形。matplotlib的绘图命令和matlab的绘图命令基本相似,在使用上可以互相借鉴。 安装matplotlib最简单的方法就是在操作系统的命令行窗口分别输入并执行下面的命令:
python -m pip install -U pip setuptoolspython -m pip install -U matplotlib
使用matplotlib绘图,会用到Numpy库,Numpy库主要用于科学计算。编写Python程序解决数学问题,sympy库、matplotlib库、Numpy库是必然要用到的,读者还需要掌握这些库的用法。 在操作系统的命令行窗口输入并执行下面的命令安装Numpy库:
pip3 install numpy
例1 绘制sin(x)函数和cos(x)函数图像
#导入numpy库import numpy as np#导入绘图工具库import matplotlib.pyplot as plt# np的linspace函数在指定的间隔范围内返回均匀间隔的一组数值# 例如:np.linspace(start,end,n=50),在start- end,均匀的返回n个数值# 定义了一个numpy的数组x,从-2π到2π,共200个值x=np.linspace(-2*np.pi,2*np.pi,200,endpoint=True)#对x进行cos计算cos= np.cos(x)#设置cos图像的线条颜色、线条粗细和图像标签标签plt.plot(x,cos,color='red',linewidth=1.5,label='cos')#对x进行sin计算sin= np.sin(x)#设置sin图像的线条颜色、线条粗细和图像标签标签plt.plot(x,sin,color='blue',lw=2.5,label='sin')#设置图例显示位置plt.legend(loc='lower left')#设定x轴范围plt.xlim(-2*np.pi*1.1,2*np.pi*1.1)#设定y轴范围plt.ylim(cos.min()*1.1,cos.max()*1.1)#设置X轴刻度值plt.xticks(    [-2*np.pi,-3*np.pi/2,-np.pi,-np.pi/2,0,np.pi/2,np.pi,3*np.pi/2,2*np.pi],    [r'-$2\pi$',r'-$3\pi/2$',r'-$\pi$',r'-$\pi/2$','0',r'$\pi/2$',r'$\pi$',r'-$3\pi/2$',r'$2\pi$']        )#设置Y轴刻度值plt.yticks([-1,0,1])#通过plt.gca()获取坐标轴对象 然后设置属性ax=plt.gca()#隐藏top和right周ax.spines['top'].set_color("none")ax.spines['right'].set_color("none")#把左下设置为0点ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))plt.show()
代码解读 使用matplotlib绘制函数图像,要比sympy麻烦一些,绘图前要创建绘图需要的数据,对坐标轴进行设置。 程序首先调用Numpy库的linspace()函数,创建绘制三角函数图像需要的数据,即三角函数变量x的取值范围。linspace()函数在指定的间隔范围内返回均匀间隔的一组数值,x的取值范围为-2π到+2π范围,在该范围内均匀取200个数值。 np.cos(x)返回x取不同值时cos的函数值,返回一个存储cos函数值的列表对象。 matplotlib库pyplot模块的plot()函数使用给出的数据在坐标轴上绘制曲线,参数x和cos是要绘制的数据点,color是曲线的颜色,lw是曲线的宽度,label是标识曲线的标签。 pyplot模块的legend()函数设置图例的位置,当需要在一个坐标轴上绘制多条曲线时,显示图例是不错的绘图方法。 pyplot模块的xlim()函数设置坐标轴的取值范围,X轴的取值范围为-2π、-3π/2、π、-π/2、0,π/2、π、3π/2、2π。Y轴的取值范围为cos列表元素的最小值和cos列表元素的最大值,即1和-1。 pyplot模块的xticks()函数设置X轴刻度的显示样式,若不设置显示样式,matplotlib会把X轴刻度显示为数值,这里希望显示为弧度。“-$\pi$”为laText排版系统的语法,在python中使用laText,需要在文本的前后加上$符号,pi是π,matplotlib会自动解析laText内容并排版输出。 最后调用pyplot模块的gca()函数获取轴对象,隐藏top和right轴,matplotlib在绘图时默认会有4个轴,两个横轴和两个竖轴。

b5bda409c1a95b6f00edbaba7dc0451d.png

观察函数图像,发现y=sin(x)和y=cos(x)都是以2π为周期的周期函数,它们的定义域都是区间(-∞,+∞),值域都是闭区间[-1,1],自变量x的单位是弧度。 y=sin(x)和y=cos(x)函数的最大值是1,最小值是-1。 y=sin(x)在(-π/2,π/2)上单调增加,函数的周期是2π,因此y=sin(x)在区间[2kπ-π/2,2kπ+π/2]上单调增加,k为整数。同理,y=sin(x)在区间[2kπ+π/2,2kπ+3π/2]上单调减少。 从函数图像中还发现,y=sin(x)关于原点对称,是奇函数,y=cos(x)关于Y轴对称,是偶函数。

例2 绘制tan(x)函数图像

#导入numpy库import numpy as np#导入绘图工具库import matplotlib.pyplot as pltx=np.linspace(-2*np.pi,2*np.pi,200,endpoint=True)#对x进行tan计算tan= np.tan(x)#划分曲线,分别设置曲线样式ym1 = np.ma.masked_where(tan > 0, tan)ym2 = np.ma.masked_where(tan < 0, tan) #绘制曲线lines = plt.plot(x,tan,x,ym1,x,ym2,label='tan')#用红色虚线绘制正切函数竖直渐进线plt.setp(lines[0], color='red',linestyle='dashed',linewidth=1)#用蓝色线绘制曲线plt.setp(lines[1], color='blue',linewidth=1)plt.setp(lines[2], color='blue',linewidth=1)#设定x轴范围plt.xlim(-2*np.pi*1.1,2*np.pi*1.1)#设定y轴范围plt.ylim(-9,9)#设置X轴刻度值plt.xticks(    [-2*np.pi,-3*np.pi/2,-np.pi,-np.pi/2,0,np.pi/2,np.pi,3*np.pi/2,2*np.pi],    [r'-$2\pi$',r'-$3\pi/2$',r'-$\pi$',r'-$\pi/2$','0',r'$\pi/2$',r'$\pi$',r'$3\pi/2$',r'$2\pi$']        )#设置Y轴刻度值plt.yticks(list(range(-9,10,1)))#通过plt.gca()获取坐标轴对象 然后设置属性ax=plt.gca()#隐藏top和right周ax.spines['top'].set_color("none")ax.spines['right'].set_color("none")#把左下设置为0点ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))plt.show()
代码解读 Numpy库ma模块的masked_where函数从给定的数据集中选取符合条件的数据并进行屏蔽,masked_where(tan > 0, tan)会从tan数据集选取值大于0的数据,对这些数据进行屏蔽,并返回没有被屏蔽的数据集。 plot()函数可以绘制多条曲线,依次传入绘制曲线的数据集即可。 pyplot模块的setp()函数可以设置每条绘制曲线的样式。   4cf7cc7dd370bcb499482c1ba248e159.png 观察函数图像,发现tan(x)函数以π为周期,向Y轴两端无限延伸,没有最大值,也没有最小值,值域为全体实数。 进一步观察发现,函数曲线在±π/2或kπ+π/2(k为整数)处没有值,曲线只是无限接近该值。因为根据定义,tan(α)=y/x,p=π/2时,x=0无意义,正切值不存在。tan(x)函数的定义域为{x|x≠(πbai/2)+kπ,k∈Z}。 观察图像还发现,函数图像关于原点对称,是奇函数。 研究三角函数时,掌握三角函数之间的关系是非常重要的,可以通过三角函数之间的关系由一个三角函数推导出其它三角函数。 例如,当函数角度相同时: 根据sin^2α+cos^2α=1关系,sin(a)函数可推导出cos(a)函数,cos(a)函数可推导出sin(a)函数。 根据tan(a) = sin(a)/cos(a)关系,sin(a)函数和cos(a)函数可推导出tan(a)函数。 e6aedff28b99e00ff10252fdfb3dcaea.png— END—推荐课程

Python从入门到精通

课程从初学者角度出发,以通俗易懂的语言,丰富的实践案例,让初学者能够快速入门Python编程,全面掌握Python编程技能,具备开发网络爬虫、数据分析和机器学习的编程能力。在课程内容安排上,提供了图文课程、视频课程和课程考核,保障了学习效果和质量。课程适合16周岁以上人群学习。

f9f9069879f9f932b46ec9f2a77b80b5.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python坐标轴间隔_使用Python玩转高等数学(5):三角函数 的相关文章

  • remote: Support for password authentication was removed on August 13, 2021. Please use a personal ac

    报错 remote Support for password authentication was removed on August 13 2021 Please use a personal access token instead r
  • 安装Ubuntu20.04后时间不准

    安装Ubuntu20 04后时间不准 买了一台瘦客户机 原先是安装Windows操作系统的 后面安装Ubuntu20 04后导致时间一直有问题 不准 解决办法 1 安装 ntpdate sudo apt get install ntpdat
  • 超硬核!程序员10种副业赚钱之道,实现月收入增加20k!

    大家好 我是良许 经常有小伙伴问我说 良许 你的副业搞得那么溜 能不能给我们介绍一些可操作性的副业 让我们在让我们在工作之余能有另外一份收入 为了响应大家的需求 本文我就整理了一些我所知道的适合程序员的副业 向大家做一个分享 这些副业 每个
  • Node.js一些报错的解决方案

    安装 https blog csdn net qq 48485223 article details 122709354 报错1 查询版本 npm v npm WARN logfile could not create logs dir E
  • Json的格式规范

    解决报错 Resolved org springframework web HttpMediaTypeNotSupportedException Content type application x www form urlencoded
  • OCR常用公开数据集整理

    OCR常用的数据集 在这个代码仓库里 提供了常用的OCR检测和识别中的通用公开数据集的下载链接 并且提供了json标签转成 txt标签的代码和转换好的 txt标签 该项目的详细github地址如下 https github com zcsw
  • 通过Windows10上的VS Code打开远端Ubuntu上的项目操作步骤

    Ubuntu版本要求是16 04及以上版本 这里以16 04为例 在Ubuntu上安装OpenSSH server 执行 sudo apt get install openssh server 在Windows 10 1803 上安装Win
  • go-casbin学习

    casbin学习 一 背景 1 Casbin是什么 Casbin 是一个授权库 在我们希望特定用户访问特定的 对象 或实体的流程中可以使用 主题 访问类型 例如 动作 可以是 读取 写入 删除 或开发者设置的任何其他动作 这是Casbin最
  • Java开发中Word转PDF文件5种方案横向评测

    Java开发中Word转PDF文件5种方案横向评测 前段时间接了个项目 需要各种处理Word模板 转PDF 签章等等 非常头疼 其中光是一个word转PDF就折磨我好久 实现转换很简单 但是效果总是达不到满意 于是我把市面上能找到的word
  • STM32G0系列的启动配置与程序下载

    文章目录 目的 启动配置 程序下载 通过程序修改 nBOOT SEL 总结 目的 STM32G是意法半导体这两年新推出的系列芯片 相比原先的F系列的芯片有很多提升点 将来必将取代F系列芯片的地位 对于新芯片的应用来说能够正确下载与运行程序是
  • 文档服务器 件排名,十大服务器排名

    十大服务器排名 内容精选 换一换 对于公网ELB后端服务器是用于对外提供服务 ELB将访问流量分担到不同的服务器上 负载均衡器的带宽大小是根据外部访问流量访问ELB后端云服务器的带宽需求进行设置的 对于私网ELB在企业内部进行负载分担 完全
  • 【操作系统】分页储存管理方式一些计算公式以及计算例题(页表项大小,页表项,页面大小的区别)

    我在学习操作系统的时候在遇到页表项大小 页表项 页面大小的的误区 百度了好久也是很迷糊 现如今恍然大悟 今天给大家分享一下 希望大家不用迷路 之前百度到了一个这样的问题 我曾经也有过这样的问题 如图 首先我来说页表项和页面大小没有特别的关系
  • 【3D人脸】MediaPipe Face Mesh 调研

    官网效果 MediaPipe Face Mesh 不够高清 case也不够丰富 暂时看不出问题 官方AI博客 Real Time AR Self Expression with Machine Learning 没啥有价值的信息 但里面的g
  • MyBatis 分页插件pagehelper使用

    引入分页插件
  • springboot+oauth2

    SPRING BOOT OAUTH2 0 jdbc o o 搞了几天springboot的security 下的 oauth2 0 之前没接触过springboot 和security spring boot OAUTH2 0 官方文档也解
  • Golang学习笔记一:go安装配置

    安装要点 环境变量 golang的环境变量一般只用设置两个即可 GOROOT和GOPATH GOROOT是golang软件安装位置的根目录 比如 usr bin 这个环境变量一般会有一个默认值 如果没有修改默认的安装路径 那么一般可以不用管
  • 脚本诊断要求在将其安装到的文件夹上设置特定权限。

    VS2012 调试JScript时 提示要设置权限 记录以下DOS命令 方便以后使用 有时候 vs2005 vs2010调试脚本时 提示找不到源码 就用这个集合设置权限 C Windows system32 cmd exe q c C Wi
  • SpringBoot三十:使用Guava的RateLimiter限制IP访问接口频率

    文章目录 控制每秒N个许可 不限制IP 控制每个IP的每秒N个许可 限制IP访问接口频率 基于 自定义注解 切面 的方式实现 pom文件引入以下依赖
  • 写在2-14,程序员才看得懂的情书

    我能把整个世界都抽象成对象 但是没办法把你变成我的对象 想让你成为私有常量 外部函数无法访问你 又想让你变成全局常量 在整个生命周期随时随地都可以调用你 因为世界上没有这样的常量 所以我的无法定义你 我可以重载甚至覆盖任何一种方法 但是我却

随机推荐