You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中区分两类折线图?需补全分类判定代码

折线图分类判别模块实现方案

核心思路

提取折线数据的关键特征(如波动方差、斜率极值等),设定对应阈值区分GRAPH A和GRAPH B,再将分类结果整合到已有Matplotlib动画绘图流程中,输出带类别标注的动画图表。

分类判定函数实现

根据GRAPH A/B的特征差异选择判定属性和阈值,以下是示例实现(可按需调整特征和阈值):

import numpy as np

def classify_line_chart(data):
    # 计算数据波动方差(衡量整体波动程度)
    data_variance = np.var(data)
    # 计算折线斜率的最大绝对值(衡量变化剧烈程度)
    slopes = np.diff(data)
    max_slope = np.max(np.abs(slopes))
    
    # 示例阈值(需根据GRAPH A/B的真实数据校准)
    VAR_THRESHOLD = 8
    SLOPE_THRESHOLD = 4
    
    # 判定逻辑
    if data_variance <= VAR_THRESHOLD and max_slope <= SLOPE_THRESHOLD:
        return "GRAPH A"
    else:
        return "GRAPH B"

与Matplotlib动画代码整合

将分类函数嵌入动画流程,在图表中实时标注类别:

import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

# 生成示例数据(替换为实际输入数据集)
def generate_sample_data(chart_type):
    if chart_type == "A":
        return np.linspace(0, 10, 50) + np.random.normal(0, 0.5, 50)  # 平缓波动小(对应GRAPH A)
    else:
        return np.sin(np.linspace(0, 10, 50)) * 10 + np.random.normal(0, 1, 50)  # 波动大斜率高(对应GRAPH B)

# 初始化绘图组件
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)
# 类别标注文本框(固定在图表左上角)
category_text = ax.text(0.02, 0.95, '', transform=ax.transAxes, fontsize=12, fontweight='bold')

# 加载数据并完成分类
x_data = np.linspace(0, 10, 50)
y_data = generate_sample_data("B")  # 替换为实际输入的y数据集
chart_category = classify_line_chart(y_data)

# 动画初始化函数
def init():
    ax.set_xlim(0, 10)
    ax.set_ylim(np.min(y_data)-2, np.max(y_data)+2)
    category_text.set_text(f"类别: {chart_category}")
    return line, category_text

# 动画帧更新函数
def update(frame):
    line.set_data(x_data[:frame], y_data[:frame])
    return line, category_text

# 启动动画
ani = FuncAnimation(fig, update, frames=len(x_data), init_func=init, blit=True, interval=50)
plt.title("折线图分类动态展示")
plt.show()

调整说明

  • 若GRAPH A/B的区分特征不是波动和斜率,可替换分类函数中的特征计算逻辑(如统计峰值数量、计算平均趋势斜率等)。
  • 阈值需通过实际样本数据校准,确保分类准确率。
  • 类别标注的位置、样式可通过ax.text的参数调整。

内容的提问来源于stack exchange,提问作者MJay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:10:33