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

如何合并光敏传感器数据至DataFrame以实现Plotly绘图?

合并多CSV文件为DataFrame并使用Plotly绘图

步骤1:加载并合并CSV数据

假设你的每个CSV文件都包含PWM列和对应的传感器读数列(比如默认列名为Value),我们可以通过按PWM列匹配的方式,将所有数据整合到同一个DataFrame中,替代手动创建空列的低效方式。

修改后的完整代码如下:

import pandas as pd
import plotly.express as px

def main_code():
    # 定义要加载的文件与对应列名映射
    sensor_config = {
        'sens_00': 'sens_00.csv',
        'sens_06': 'sens_06.csv',
        'sens_12': 'sens_12.csv',
        'sens_18': 'sens_18.csv',
        'sens_23': 'sens_23.csv'
    }
    
    # 初始化合并DataFrame:先加载第一个文件并重命名读数列
    merged_df = pd.read_csv(sensor_config['sens_00'], sep=';')
    merged_df.rename(columns={'Value': 'sens_00'}, inplace=True)
    
    # 遍历剩余文件,按PWM列合并
    for col_name, file_path in list(sensor_config.items())[1:]:
        temp_df = pd.read_csv(file_path, sep=';')
        temp_df.rename(columns={'Value': col_name}, inplace=True)
        # 内连接确保仅保留所有文件都存在的PWM值,若需保留全部PWM可改用how='outer'
        merged_df = pd.merge(merged_df, temp_df, on='PWM', how='inner')
    
    print("合并后的数据预览:")
    print(merged_df.head())
    
    # 步骤2:用Plotly绘制多曲线对比图
    # 将宽格式数据转为长格式,适配Plotly批量绘图逻辑
    long_format_df = merged_df.melt(
        id_vars='PWM',
        var_name='灵敏度等级',
        value_name='传感器读数'
    )
    
    fig = px.line(
        long_format_df,
        x='PWM',
        y='传感器读数',
        color='灵敏度等级',
        title='光敏传感器不同灵敏度等级的PWM响应曲线',
        labels={'PWM': 'PWM值(0-65000)'},
        range_x=[0, 65000]
    )
    
    fig.show()

if __name__ == '__main__':
    main_code()

关键细节说明

  • 合并逻辑:通过pd.merge按PWM列对齐数据,避免手动填充空列的错误。如果你的CSV读数列不是Value,请替换为实际列名。
  • 长格式转换:melt函数将宽格式数据转为长格式,让Plotly自动按灵敏度等级区分曲线颜色,无需手动添加单条轨迹。
  • 绘图配置:通过range_x强制X轴范围为0-65000,同时添加中文标签提升可读性。

可选调整项

  • 若部分CSV文件的PWM值不全,可将pd.merge的how参数改为outer,保留所有PWM值,缺失数据会自动填充为NaN。
  • 若CSV文件分隔符不是;,需在pd.read_csv中单独指定sep参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:30:20