如何无需拆分数据文件,直接解析绘制多VL值的2D性能曲线图
直接读取单个数据文件绘制多曲线的解决方案
不用拆分文件,直接用pandas做数据分组就能搞定,步骤和代码如下:
先装必要的库
如果还没装pandas和matplotlib,先跑这个命令:
pip install pandas matplotlib
核心代码实现
直接读取整个数据文件,按VL字段分组后循环绘图,示例代码如下:
import pandas as pd import matplotlib.pyplot as plt # 读取你的性能测试数据文件,sep根据实际分隔符调整:逗号用',',空格用'\s+' df = pd.read_csv('perf_test_data.txt', sep='\s+') # 初始化绘图画布 plt.figure(figsize=(10, 6)) # 按VL值分组,每组对应一条曲线 for vl_val, data_group in df.groupby('VL'): # 先按nthr排序,保证x轴顺序合理 sorted_group = data_group.sort_values('nthr') # 绘制曲线:x轴是nthr,y轴是B,标签显示对应的VL值 plt.plot(sorted_group['nthr'], sorted_group['B'], marker='s', label=f'VL={vl_val}') # 设置图表基础信息 plt.xlabel('nthr') plt.ylabel('B') plt.title('B vs nthr (Grouped by VL)') plt.legend() plt.grid(True, linestyle='--', alpha=0.6) # 显示图表,或者用savefig保存成图片 plt.show() # plt.savefig('perf_curve.png', dpi=300)
注意事项
- 数据格式适配:如果你的数据是Excel格式,把
pd.read_csv换成pd.read_excel即可;分隔符不是空格/逗号的话,修改sep参数对应实际分隔符 - 数据预处理:如果文件里有缺失值或无效数据,可以先加一行
df = df.dropna()删掉空值,或者用df = df[df['B'] > 0]过滤异常值 - 样式自定义:可以调整
marker(标记点样式)、linestyle(线条样式)、color(颜色)等参数,让曲线更符合你的需求
内容的提问来源于stack exchange,提问作者msndm
相关产品推荐
相关产品推荐

