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

从含字符串与数字的文本文件读取数据并绘制Python图表的问题

解决混合字符串数字文件的数值提取与绘图问题

核心问题原因

直接将带标识的整行字符串(如idn: 5005.4138976165706)转为浮点数,程序无法识别标识部分,必然抛出ValueError。解决关键是先拆分字符串,提取纯数字部分再转换。

分步解决方案

1. 字符串拆分提取数值

对每一行内容,按': '(冒号+空格)分割,拆分出标识和对应数值,只将数值部分转为浮点数。

2. 完整可运行代码

import matplotlib.pyplot as plt

# 初始化存储列表
idn_data = []
kia_sales = []
timestamps = []

# 读取并解析文件
with open('myfile.txt', 'r', encoding='utf-8') as file:
    for line in file:
        cleaned_line = line.strip()
        if not cleaned_line:
            continue  # 跳过空行
        
        # 匹配idn行
        if cleaned_line.startswith('idn:'):
            try:
                num_part = cleaned_line.split(': ')[1]
                idn_data.append(float(num_part))
            except (IndexError, ValueError):
                print(f"无效的idn行: {cleaned_line}")
        # 匹配KIA销量行(标识可根据实际文件调整)
        elif cleaned_line.startswith('KIA销量:'):
            try:
                num_part = cleaned_line.split(': ')[1]
                kia_sales.append(float(num_part))
            except (IndexError, ValueError):
                print(f"无效的KIA销量行: {cleaned_line}")
        # 匹配时间戳行
        elif cleaned_line.startswith('时间戳:'):
            ts_part = cleaned_line.split(': ')[1]
            # 若时间戳是日期字符串,可改用datetime解析,示例:
            # from datetime import datetime
            # ts = datetime.strptime(ts_part, '%Y-%m-%d %H:%M:%S')
            timestamps.append(ts_part)

# 绘制idn与KIA销量关系图(确保两个列表长度一致)
if len(idn_data) == len(kia_sales):
    plt.figure(figsize=(10, 6))
    plt.scatter(idn_data, kia_sales, color='#2E86AB', marker='o')
    plt.plot(idn_data, kia_sales, linestyle='--', color='#F24C4C')
    plt.xlabel('idn 数值')
    plt.ylabel('KIA 销量')
    plt.title('idn 与 KIA 销量关联分析')
    plt.grid(alpha=0.3)
    plt.show()
else:
    print("idn数据与KIA销量数据长度不匹配,无法绘图")

3. 关键注意事项

  • 适配文件实际格式:如果你的文件中标识不是idn:、KIA销量:,要对应修改startswith的匹配内容。
  • 异常处理:加入try-except可以跳过格式错误的行,避免程序直接崩溃,同时打印错误行便于排查。
  • 时间戳处理:如果时间戳是日期时间字符串,可引入datetime模块解析为时间对象,方便后续按时间序列绘图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:15:35