《高等数学》同济大学版 P338
编写 test_diff_2_area.py 如下
# -*- coding: utf-8 -*-
""" 画由两条抛物线: y=sqrt(x) , y=x^2 所围成的图形的面积 """
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def fun1(x):
return np.sqrt(x)
def fun2(x):
return np.power(x,2)
x = np.linspace(0, 1, num=100)
y1 = fun1(x)
y2 = fun2(x)
fig, ax = plt.subplots()
plt.plot(x, y1, 'r', linewidth=2)
plt.plot(x, y2, 'r', linewidth=2)
a = 0.2
b = 0.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)
iy1 = fun1(ix)
ixy1 = zip(ix, iy1)
iy2 = fun2(ix)
ixy2 = zip(ix, iy2)
verts1 = [(a, 0)] + list(ixy1) + [(b, 0)]
verts2 = [(a, 0)] + list(ixy2) + [(b, 0)]
# 多边形 Polygon
poly1 = Polygon(verts1, facecolor='0.9', edgecolor='0.3')
poly2 = Polygon(verts2, facecolor='1.0', edgecolor='0.3')
ax.add_patch(poly1)
ax.add_patch(poly2)
# 添加 LaTex数学公式
x_math = 0.5
y_math = 0.5
latex = r'$\int_a^b (\sqrt{x} - x^2)dx $'
plt.text(x_math, y_math, latex, fontsize=14, horizontalalignment='center')
plt.show()
运行 python test_diff_2_area.py
- 相关函数介绍
- linspace:在指定的间隔内返回均匀间隔的数字
- 属性
- start:序列的起始值
- stop :序列的结束值
- 其他属性详见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html?highlight=linspace#numpy.linspace
- 属性
- set_xticks:使用刻度列表设置x刻度
- set_xticklabels:使用字符串标签列表设置x-tick标签。
- 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:在指定的间隔内返回均匀间隔的数字