python:画函数积分图

news2024/12/27 4:02:26

《高等数学》同济大学版 P209

编写 test_diff_area.py  如下

# -*- coding: utf-8 -*-
""" 函数积分图 y = x^3 -x^2 -x+1 """
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

def func(x):
    return x**3 -x**2 -x+1

x = np.linspace(0, 10, num=100)
y = func(x)

fig, ax = plt.subplots()
plt.plot(x, y, 'r', linewidth=2)

a = 2
b = 9
#坐标轴设置
ax.set_xticks([a, b])
ax.set_yticks([])
ax.set_xticklabels(['$a$', '$b$']) # 换成公式字体
plt.figtext(0.98, 0.05, '$x$')
plt.figtext(0.01, 0.98, '$y$') #0~1代表在图的比例处

# 绘制灰色多边形
ix = np.linspace(a, b)
iy = func(ix)
ixy = zip(ix, iy)
verts = [(a,0)] + list(ixy) + [(b,0)]
# 多边形 Polygon
poly = Polygon(verts, facecolor='0.9', edgecolor='0.3')
ax.add_patch(poly)

# 添加 LaTex数学公式
x_math = (a+b)*0.5
y_math = 35
latex = r'$\int_a^b (x^3 -x^2 -x+1)dx $'
plt.text(x_math, y_math, latex, fontsize=14, horizontalalignment='center')
plt.show()

运行 python test_diff_area.py 

  • 相关函数介绍
    • linspace:在指定的间隔内返回均匀间隔的数字
      • 属性
        • start:序列的起始值
        • stop :序列的结束值
      • 其他属性详见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html?highlight=linspace#numpy.linspace
    • set_xticks:使用刻度列表设置x刻度
      • 属性
        • ticks:x轴刻度列表
      • 更多属性详见文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_xticks.html?highlight=set_xticks#matplotlib.axes.Axes.set_xticks
    • set_xticklabels:使用字符串标签列表设置x-tick标签。
      • 属性
        • labels:字符串标签列表
      • 更多属性参见文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_xticklabels.html?highlight=set_xticklabels#matplotlib.axes.Axes.set_xticklabels
    • set_yticks:使用刻度列表设置y刻度
      • 属性
        • ticks:y轴刻度列表
      • 更多属性参加文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.set_yticks.html?highlight=set_ytick
    •  figtext:添加文字到图
      • 属性
        • x,y:两个float值,放置文本的位置。默认情况下,这是图形坐标,浮动在[0,1]中。最右是1最左是0
      • 更多属性详见文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.figtext.html?highlight=figtext#matplotlib.pyplot.figtext
    • zip:把两个数组打包为一个元组
      • 属性
        • iterabl :一个或多个迭代器
      • 详见资料:Python zip() 函数 | 菜鸟教程
    • text:请参照往期笔记https://www.cnblogs.com/linblogs/p/9670488.html
      • 属性
        • horizontalalignment:文本显示位置,center是居中显示
    • Polygon:绘制一般的多边形
      • 属性
        • xy:多边形的点
        • facecolor:填充的阴影深度
        • edgecolor:填充的边界深度
    • 参考matplotlib文档https://matplotlib.org/index.html

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

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

相关文章

人工智能的普及造成了一场能源危机,但并不是无法解决。

人工智能的普及造成了一场能源危机,但并不是无法解决。 原文链接: 点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com 人工智能(AI)的爆炸式增长促使科技巨头(包括 Google、Meta、亚马逊和微软等&…

LeetCode刷题笔记第231题:2 的幂

LeetCode刷题笔记第231题:2 的幂 题目: 想法: 对输入的数值循环除以2直至数值小于等于1,如果最终的数值为1则为2的幂,小于1则不是2的幂。 class Solution:def isPowerOfTwo(self, n: int) -> bool:if n 1:retur…

[C#]winform基于opencvsharp结合Diffusion-Low-Light算法实现低光图像增强黑暗图片变亮变清晰

【训练源码】 https://github.com/JianghaiSCU/Diffusion-Low-Light 【参考源码】 https://github.com/hpc203/Diffusion-Low-Light-onnxrun 【论文地址】 https://arxiv.org/pdf/2306.00306.pdf 【算法原理图】 【效果展示】 【测试环境】 vs2019 netframework4.7.2 …

【数据结构】关于优先级队列(堆),你了解内部原理吗?(超详解!!!)

前言: 🌟🌟Hello家人们,这期讲解二叉树的遍历,希望你能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/EdeWV 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSD…

Iinux脚本bash:对自己的应用程序及其相关目录进行备份和恢复,并可查看备份计划、备份状态、备份大小等

目录 一、要求 1、需求 2、需求分析 二、脚本 1、总述 2、创建备份脚本 (1)脚本命名 (2)脚本内容 3、创建恢复脚本 (1)脚本命名 (2)脚本内容 4、设置cron作业 5、监控脚…

mybatis、mybatis-plus自定义插件,实现自定义策略数据脱敏功能

背景 mybatis中四大组件的作用,下面开发的插件拦截器会使用 四大组件Executor、StatementHandler、ParameterHandler、ResultSetHandler 需求 1、根据脱敏规则进行查询数据,显示的时候进行展示脱敏 2、根据脱敏规则进行查询数据,将脱敏后的数据批量更新回数据库,进行脱…

【Python系列】 Python打印99乘法表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Vue+ElementUI技巧分享:创建一个带有进度显示的文件下载和打包组件

在现代前端开发中,用户体验至关重要,尤其是在处理文件下载时。为用户提供实时的下载进度显示和打包功能,不仅能提升用户体验,还能使应用更具专业性。在本文中,我们将创建一个 Vue 组件,用于显示文件下载进度…

视图变化 - 等比例变换防止视图拉伸

文章目录 使用场景等比变换等高填充等宽填充代码进行比目标宽高计算超出部分处理设置负的 marginclip 裁剪 End参考: 使用场景 在日常开发中,经常会遇到的一个需求是将图片/视频从界面的一个位置,变换到另一个位置。在处理这类问题的时候经常…

基于微信小程序的书籍销售预测系统的设计与实现(论文+源码)_kaic

摘 要 随着信息化社会的进步,我们的生活越来越便利。在网上,我们可以轻松地进行各种交易,其中包括图书交易。可以说,图书交易是网络交易的一个重要方面。本系统以面向对象的方式进行开发,使用MySQL作为主要数据存储…

linux centos stream9图形化操作

初学者对图形化操作比较熟悉,对字符界面、命令行比较陌生。本文讨论一下图形化操作的基本技能。希望初学者掌握后尽快使用字符界面,会执行命令,更会编程。 本案例是基于stream9版本,如版本不同,会有差别,注意操作使用。 一、安装图形化界面 Linux操作系统常用的图形用…

Unity URP无光照下Shadow 制作 <二> 合批处理

闲谈 相信大家在日常工作中发现了一个问题 , urp下虽然可以做到3个Pass 去写我们想要的效果,但是,不能合批(不能合批,那不是我们CPU要干冒烟~!) 好家伙,熊猫老师的偏方来了 &#x…

Leetcode JAVA刷刷站(38)外观数列

一、题目概述 二、思路方向 为了解决这个问题,我们可以编写一个Java函数countAndSay,该函数接受一个整数n作为输入,并返回外观数列的第n个元素。这个函数将基于递归公式来构建数列,其中countAndSay(1) "1",…

vue设置环境变量

1、在根目录地下建立两个文件,.env.development 和 .env.production VUE_APP_BASE_API"" .env.development这个就是开发环境,.env.production这个就是生产环境,也就是这个可以写本地的ip端口 .env.production 这个就是生产环境&…

Verilog刷题笔记51

题目: Now that you have a state machine that will identify three-byte messages in a PS/2 byte stream, add a datapath that will also output the 24-bit (3 byte) message whenever a packet is received (out_bytes[23:16] is the first byte, out_bytes[1…

14、springboot3 vue3开发平台-前端-自定义菜单组件,根据路由动态渲染

文章目录 1. 组件2 . 使用示例 1. 组件 src\components\menuTree\index.vue <template><template v-for"item in menuList"><!-- 分为两种方式渲染&#xff1a;有子菜单和没有子菜单--><!-- 没有子菜单--><el-menu-item :index&qu…

linux cpu问题排查及性能优化

cpu性能 一、cpu啥时候才叫有瓶颈 cpu运行的快还是慢、cpu有没有问题&#xff0c;cpu是不是还需要优化。这些是平常开发和运维中经常遇到的问题。那么我门到底如何去判断机器cpu运行的到底有没有异常呢。 从我排查问题来说&#xff0c;单看系统指标不能完全反应应用运行的状态…

移动魔百盒刷机教程

准备工作 确认型号&#xff1a;首先确认您的魔百盒的具体型号&#xff0c;不同的型号可能需要不同的刷机包。刷机包&#xff1a;下载适合您型号的刷机包。U盘&#xff1a;准备一个容量不超过8GB的U盘&#xff0c;并将其格式化为FAT32格式。刷机工具&#xff1a;根据型号可能需…

深度学习实战:手把手教你构建多任务、多标签模型

多任务多标签模型是现代机器学习中的基础架构&#xff0c;这个任务在概念上很简单 -训练一个模型同时预测多个任务的多个输出。 在本文中,我们将基于流行的 MovieLens 数据集,使用稀疏特征来创建一个多任务多标签模型,并逐步介绍整个过程。所以本文将涵盖数据准备、模型构建、训…

keepalived讲解及练习

目录 1、keepalived介绍 1.1 keepalived简介 2、高可用集群 2.1 集群类型 2.2 系统可用性 2.3 系统故障 2.4 实现高可用 3、VRRP 3.1 VRRP&#xff1a;Virtual Router Redundancy Protocol 3.2 VRRP 相关术语 3.3 VRRP相关技术 4、 keepalived实验 4.1 全局配置 4…