• python计算折线与坐标轴的面积(正负抵消)


    计算下图中折线与y轴围成的面积,蓝色为负,黄色为正,正负抵消后的和。

    • 采用梯形面积和累加,
    • 由于业务需要,本例以130为边界,分别求50-130之间的面积,以及130-210之间的面积>

    本例只给 ( 50 , x 1 ) , ( 70 , x 2 ) , ( 90 , x 3 ) , ( 130 , x 4 ) , ( 190 , x 5 ) , ( 230 , x 6 ) (50, x_1),(70, x_2),(90, x_3),(130, x_4),(190, x_5),(230, x_6) (50,x1)(70,x2)(90,x3)(130,x4)(190,x5)(230,x6),这 6 个点, 其中 x 1 = 0 x_1=0 x1=0

    在这里插入图片描述

    • 区域1面积: 是一个三角形,为 底*高/2 即为: x 2 × ( 70 − 50 ) ÷ 2 x_2\times{(70-50)\div{2}} x2×(7050)÷2
    • 区域2面积:梯形面积,上底+下底*高/2,即为: ( x 1 + x 2 ) × ( 90 − 70 ) ÷ 2 (x_1+x_2)\times{(90-70)\div{2}} (x1+x2)×(9070)÷2
    • 区域3面积:可以直接上底+下底*高/2,(已经过验证),分析过程,蓝色三角形和黄色三角形是相似三角形,。$$
      • 首先判断 a = ∣ x 2 ∣ − ∣ x 3 ∣ a=\mid x_2 \mid-\mid{x_3}\mid a=∣x2x3的大小,若 a > 0 a>0 a>0,而且1和2面积正负抵消,剩余就是求3的面积,即梯形3的面积则面积为 ( x 2 + ∣ x 3 ∣ ) × (x_2+\mid x_3\mid)\times{} (x2+x3)×
        在这里插入图片描述
    • 区域4,类似1区域3
    • 区域5,类似于区域3

    复杂写法:

    aera['down'] = df_10min_down.apply(lambda x: sum( \
        [0.5*(abs(i[0][0])/(abs(i[0][0])+abs(i[0][1])))*i[1]*i[0][0]*(1-(i[0][1]/i[0][0])**2) if i[0][0]*i[0][1] < 0 else 0.5*(i[0][0]+i[0][1])*i[1] \
         for i in zip(zip(x[:-1], x[1:]), height[:6])]), axis=1)
    aera['up'] = df_10min_up.apply(lambda x: sum( \
        [0.5*(abs(i[0][0])/(abs(i[0][0])+abs(i[0][1])))*i[1]*i[0][0]*(1-(i[0][1]/i[0][0])**2) if i[0][0]*i[0][1] < 0 else 0.5*(i[0][0]+i[0][1])*i[1] \
         for i in zip(zip(x[:-1], x[1:]), height[6:])]), axis=1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    简化写法(推荐)

    aera['down'] = df_10min_down.apply(lambda x: sum([0.5*(i[0][0]+i[0][1])*i[1] for i in zip(zip(x[:-1], x[1:]), height[:6])]), axis=1)
    aera['up'] = df_10min_up.apply(lambda x: sum([0.5*(i[0][0]+i[0][1])*i[1] for i in zip(zip(x[:-1], x[1:]), height[6:])]), axis=1)
    
    • 1
    • 2
  • 相关阅读:
    鸿鹄工程项目管理系统em Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
    甩出11张图-让我们来构想(实现)一个倒排索引
    thinkphp5.1 关联查询
    PostgreSQL文本搜索(六)——词典
    淘宝关键词API接口
    [计算机入门] 设置日期和时间
    OCR多语言识别模型构建资料收集
    夯实算法-整数转罗马数字
    应用程序出现了未经处理的异常
    【Unity3D】摇杆
  • 原文地址:https://blog.csdn.net/weixin_46713695/article/details/126056638