python画两条曲线_查找在matplotlib中绘制的两条曲线之间的区域(在区域之间填充)...

我有两条曲线的x和y值列表,它们都有奇怪的形状,而且我没有任何函数。我需要做两件事:(1)绘制它并对曲线之间的区域进行着色,如下图所示;(2)找到曲线之间该着色区域的总面积。

在matplotlib中,我可以用fill-betweenx和fill-betweenx绘制和着色这些曲线之间的区域,但是我不知道如何计算它们之间的确切区域,特别是因为我没有任何这些曲线的函数。

有什么想法吗?

我到处找都找不到简单的解决办法。我很绝望,所以非常感谢你的帮助。

非常感谢!

avcBO.png

编辑:为了以后的参考(如果有人遇到同样的问题),下面是我如何解决的(许多个月后):将每条曲线的第一个和最后一个节点/点连接在一起,形成一个形状怪异的大多边形,然后使用shapely自动计算多边形的面积,这是曲线之间的精确区域,不管它们走哪条路,也不管它们有多非线性。就像一个魔咒,已经跑了上千条曲线。:)

这是我的代码:from shapely.geometry import Polygon

x_y_curve1 = [(0.121,0.232),(2.898,4.554),(7.865,9.987)] #these are your points for curve 1 (I just put some random numbers)

x_y_curve2 = [(1.221,1.232),(3.898,5.554),(8.865,7.987)] #these are your points for curve 2 (I just put some random numbers)

polygon_points = [] #creates a empty list where we will append the points to create the polygon

for xyvalue in x_y_curve1:

polygon_points.append([xyvalue[0],xyvalue[1]]) #append all xy points for curve 1

for xyvalue in x_y_curve2[::-1]:

polygon_points.append([xyvalue[0],xyvalue[1]]) #append all xy points for curve 2 in the reverse order (from last point to first point)

for xyvalue in x_y_curve1[0:1]:

polygon_points.append([xyvalue[0],xyvalue[1]]) #append the first point in curve 1 again, to it "closes" the polygon

polygon = Polygon(polygon_points)

area = polygon.area

print(area)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值