《高等数学》同济大学版 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
- linspace:在指定的间隔内返回均匀间隔的数字