我有一个包含曲线和直线的代码。我知道如何填充线下方和下方的区域,但我需要计算每个区域的面积值。
这是代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0.0, 2, 0.01)
y1 = np.sin(2*np.pi*x)
y2 = 0*x
fig, ax = plt.subplots(1, 1, sharex=True)
ax.plot(x, y1, x, y2, color='black')
ax.fill_between(x, y1, y2, where=y2 >= y1, facecolor='green', interpolate=True)
ax.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red', interpolate=True)
plt.show()
有什么帮助吗?
最佳答案
改编自scipy.integrate.quad
docs不同函数的示例,y = x^2:
from scipy import integrate
def f(x):
return x**2
integrate.quad(f, 0, 4)
# (21.333333333333332, 2.3684757858670003e-13)
print(4**3 / 3.) # analytical result
# 21.3333333333
返回数值计算的结果和错误。
如果您想要确切或象征性的答案,请考虑 sympy
。这是一个应用于 y = πx^2 的类似示例(注意:这里使用前导下划线来区分 Sympy 对象)。
import sympy as sym
sym.init_printing()
_x = sym.symbols("x")
_f = sym.pi * _x**2
sym.integrate(_f, (_x, 0, 2))
将这些技术中的任何一种应用于您的问题。
关于python - 计算两条曲线之间的面积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43951136/