Python+Matplotlib创建高等数学上册P2页例3交互动画

news2024/10/3 22:48:00


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
from matplotlib.patches import Rectangle

# 创建图形和坐标轴
fig, ax = plt.subplots(figsize=(12, 8))
plt.subplots_adjust(bottom=0.2)

# 设置坐标轴范围
ax.set_xlim(-2*np.pi, 2*np.pi)
ax.set_ylim(-1.5, 1.5)

# 绘制x轴和y轴
ax.axhline(y=0, color='k', linestyle='-', linewidth=0.5)
ax.axvline(x=0, color='k', linestyle='-', linewidth=0.5)

# 生成x值和对应的y值(完整的两个周期)
x_full = np.linspace(-2*np.pi, 2*np.pi, 1000)
y_full = np.sin(x_full)

# 绘制完整的正弦函数曲线
ax.plot(x_full, y_full, 'b-', label='f(x) = sin x', alpha=0.5)

# 突出显示 [-π/2, π/2] 区间
x_highlight = np.linspace(-np.pi/2, np.pi/2, 500)
y_highlight = np.sin(x_highlight)
ax.plot(x_highlight, y_highlight, 'b-', linewidth=2)

# 添加区间背景高亮
rect = Rectangle((-np.pi/2, -1), np.pi, 2, facecolor='yellow', alpha=0.2)
ax.add_patch(rect)

# 标注定义域和值域
ax.text(0, -1.3, 'D_f = [-π/2, π/2]', fontsize=12, ha='center')
ax.text(0, -1.1, 'R_f = [-1, 1]', fontsize=12, ha='center')

# 绘制定义域范围
ax.axvline(x=-np.pi/2, color='r', linestyle='--', linewidth=1)
ax.axvline(x=np.pi/2, color='r', linestyle='--', linewidth=1)

# 绘制值域范围
ax.axhline(y=-1, color='g', linestyle='--', linewidth=1)
ax.axhline(y=1, color='g', linestyle='--', linewidth=1)

# 初始x值
init_x = 0

# 创建滑块
ax_slider = plt.axes([0.2, 0.02, 0.6, 0.03])
x_slider = Slider(ax_slider, 'x', -np.pi/2, np.pi/2, valinit=init_x)

# 绘制初始点
point, = ax.plot(init_x, np.sin(init_x), 'ro')

# 更新函数
def update(val):
    x = x_slider.val
    y = np.sin(x)
    point.set_data(x, y)
    fig.canvas.draw_idle()

# 连接滑块事件
x_slider.on_changed(update)

# 添加图例
ax.legend()

# 设置标签
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_title('f(x) = sin x 的图像,突出显示 [-π/2, π/2] 区间')

# 设置刻度
ax.set_xticks(np.arange(-2*np.pi, 2*np.pi+np.pi/2, np.pi/2))
ax.set_xticklabels(['-2π', '-3π/2', '-π', '-π/2', '0', 'π/2', 'π', '3π/2', '2π'])
ax.set_yticks([-1, -0.5, 0, 0.5, 1])

plt.grid(True, linestyle=':', alpha=0.6)
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2186985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BugReport中的App Processor wakeup字段意义

一、功耗字段意义: App processor wakeup:Netd基于xt_idletimer 待机下监视网络设备的收发工作状态,即当设备发生联网从休眠态变成为唤醒态时,会记录打醒者的uid(uid大于0)和网络类型(wifi或数据类型)、时间戳 实际日志:我们在B…

【C++复习】C++11经典语法

文章目录 {}列表初始化1. 初始化内置类型变量2. 初始化数组3. 初始化标准容器4. 初始化自定义类型5. 构造函数初始化列表6. 初始化列表(initializer_list)7. 返回值初始化8. 静态成员变量和全局变量的就地初始化9. 防止类型收窄总结 decltype右值引用完美…

图像处理案例04

图像处理 问题:把不规则的图片按照参考图摆放 步骤: 1. 用ORB找关键点 2. 关键点匹配 3. 根据上一步匹配的关键点得出单应性矩阵 4. 根据单应性矩阵对不规则进行透视变换 import cv2 import numpy as np import matplotlib.pyplot as pltimgl cv2.imrea…

精华帖分享 | 因子构建思考1

本文来源于量化小论坛股票量化板块精华帖,作者为z-coffee。 以下为精华帖正文: 一段时间没写帖子,其实一直在研究策略,只是从不同的角度去思考而已。熟悉我的老板其实清楚,我的炉子水平一般,基本不太依托…

什么是 Web 应用中的 Facet 控件

在 Web 页面设计和开发中,facet 是一个十分重要的概念,尤其在电子商务、数据搜索和筛选功能中非常常见。Facet 通常指的是一种分类或过滤的方式,用于让用户能够通过多维度的条件来细化和调整数据结果,从而找到更符合需求的内容。F…

资源《Arduino 扩展板5-单电机驱动》说明。

资源链接: Arduino 扩展板5-单电机驱动 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。

ECP 集成字段非必填配置

导读 INTRODUCTION 非必填设置:ECP主数据同步的时候,经常遇到一个问题,就是ECP报错,但是这个字段两边的ecp顾问与sf顾问都觉得没实际意思,觉得没有传输的必要性,这个时候我们就可以考虑非必输的字段不必输…

Linux命令--04----文件目录类命令

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 文件目录类命令pwdls 、llcdmkdirrmdirtouchcprmmv 查看文件catmorelessheadtail 打印信息echo\> 覆盖和>>追加lnhistory 文件目录类命令 pwd ls 、ll cd…

C--编译和链接见解

欢迎各位看官!如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论 感谢各位看官的支持!!! 一:翻译环境和运行环境 在ANSIIC的任何一种实现中,存在两个不同的环境1,…

动手学深度学习(李沐)PyTorch 第 7 章 现代卷积神经网络

7.1 深度卷积神经网络(AlexNet) 在计算机视觉中,直接将神经网络与其他机器学习方法进行比较也许不公平。这是因为,卷积神经网络的输入是由原始像素值或是经过简单预处理(例如居中、缩放)的像素值组成的。但…

【C++】——list的介绍和模拟实现

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

亚马逊云乱扣费,被不知不觉扣钱真的好气呀

之前申请了亚马逊云12个月免费,一直也没用,也没登录,今天突然看到银行扣费信息,扣了我21美元,已经扣了我几个月了,登录亚马逊后台,实例为0的情况下,每个月都能扣21美元,国…

【HTML+CSS】留言板plus实现全过程

创建一个具有动态留言的简约风格留言板 在本教程中,我们将学习如何创建一个简约风格的留言板,它具备动态留言显示和一些基本动画效果。这个留言板将使用HTML和CSS构建,最终实现一个既美观又实用的界面。 准备工作 首先,确保你的…

UNRAID使用rclone挂在alist网盘

UNRAID使用rclone挂在alist网盘 需求:考虑异地备份,将部分重要的资料上传至网盘,保证nas中的资料安全。 考虑:当然网盘备份存在安全性问题,后续也可以通过加密的方式进行上传,不过这是后话,有精…

Python常见问题解答:从基础到进阶

Python常见问题解答:从基础到进阶 Python 是一种简单易学、功能强大的编程语言,广泛应用于数据分析、Web 开发、自动化脚本、人工智能等领域。即便如此,Python 开发者在编写代码的过程中,常常会遇到各种各样的问题。本文将从基础…

java集合 -- 面试

Java集合框架体系 ArrayList底层实现是数组 LinkedList底层实现是双向链表 HashMap的底层实现使用了众多数据结构,包含了数组、链表、散列表、红黑树等 List ps : 数据结构 -- 数组 ArrayList源码分析 ArrayList底层的实现原理是什么? ArrayList list new…

HKMG工艺为什么要用金属栅极?

知识星球里的学员问:在HKMG工艺中,会用到HfO2等作为栅介质层,为什么不能再用多晶硅做栅极,而是改为金属栅极? 什么是HKMG工艺? HKMG(High-K Metal Gate ),是45nm&#…

《深度学习》OpenCV 背景建模 原理及案例解析

目录 一、背景建模 1、什么是背景建模 2、背景建模的方法 1)帧差法(backgroundSubtractor) 2)基于K近邻的背景/前景分割算法BackgroundSubtractorKNN 3)基于高斯混合的背景/前景分割算法BackgroundSubtractorMOG2 3、步骤 1)初…

利士策分享,年前如何合理规划,轻松搞点小钱?

利士策分享,年前如何合理规划,轻松搞点小钱? 随着春节的日益临近,不少人开始为过年期间的开销而犯愁。 如何在年前合理规划,轻松搞点小钱,成了大家热议的话题。 别担心,这里有几个既实用又不伤…

华为OD机试 - 分班问题(Java 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷D卷A卷B卷C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加…