步骤: 1. 获取x坐标和y坐标(可能有多个y坐标)的数据,注意数据的长度必须相同。 2. x坐标和每一组y坐标组合,将曲线画在画布上。 先看效果: Caption 上代码: #coding=utf-8 import matplotlib.pyplot as plt def txt_reader(txt_file): iters, loss_ins, loss_cates, losses = [], [], [], [] with open(txt_file, 'r') as f: lines = f.readlines() for idx, line Python 数据可视化是数据分析过程中的重要环节,用于将数据以图形的形式展示出来,便于理解与解释。曲线图是一种常见的图表类型,常用于展示随时间变化的趋势。在这个例子中,我们将学习如何使用Python的matplotlib库来绘制曲线图。 我们要了解绘制曲线图的基本步骤: 1. **获取数据**:在Python中,数据通常存储在列表或者其他序列结构中。在这个例子中,我们从一个文本文件`test.txt`中读取数据。文件内容是训练过程中每一迭代的损失值,包括`loss_ins`、`loss_cate`和`loss`。通过`txt_reader`函数,我们可以解析这些数据并将其分别存储在`iters`、`loss_ins`、`loss_cates`和`losses`列表中。 ```python def txt_reader(txt_file): iters, loss_ins, loss_cates, losses = [], [], [], [] with open(txt_file, 'r') as f: lines = f.readlines() for idx, line in enumerate(lines): parts = line.rstrip("\n").split(",") iters.append((idx+1)*50) loss_in = float(parts[7].split(" ")[2]) loss_ins.append(loss_in) loss_cate = float(parts[8].split(" ")[2]) loss_cates.append(loss_cate) loss = float(parts[9].split(" ")[2][:-1]) losses.append(loss) return iters, loss_ins, loss_cates, losses ``` 2. **绘制曲线**:使用matplotlib的`pyplot`模块,我们可以轻松地在画布上绘制曲线。`plt.plot()`函数用于绘制曲线,它接受x坐标、y坐标和可选的颜色、标签等参数。在这个例子中,我们分别用绿色、红色和蓝色绘制`loss_ins`、`loss_cate`和`loss`的曲线,并通过`plt.legend()`显示图例。 ```python if __name__ == "__main__": iters, loss_ins, loss_cates, losses = txt_reader("test.txt") plt.title("Result Analysis") # 设置图表标题 plt.plot(iters, loss_ins, color='green', label='loss_ins') # 绘制loss_ins曲线 plt.plot(iters, loss_cates, color='red', label='loss_cate') # 绘制loss_cate曲线 plt.plot(iters, losses, color='blue', label='loss') # 绘制loss曲线 plt.legend() # 显示图例 plt.xlabel("iteration times") # 设置x轴标签 plt.ylabel("loss") # 设置y轴标签 plt.savefig("test.png", dpi=600) # 保存图片 plt.show() # 显示图表 ``` 在绘制曲线图时,可以调整各种属性,如线型、线宽、标记样式等,以满足不同的需求。此外,还可以添加网格线、自定义颜色地图、设置坐标轴范围等,增强图表的可读性。 总结来说,Python的matplotlib库提供了强大的数据可视化能力,使得我们可以方便地将复杂的数据转化为直观的图形,如曲线图。这个例子展示了如何从文本文件中读取数据并用曲线图展示训练过程中的损失变化,这对于监控模型的训练过程和结果分析非常有用。通过掌握这些基础知识,你可以进一步探索更复杂的可视化技术,如散点图、直方图、热力图等,以更好地理解和传达数据的故事。






























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- protobuf-java-4.30.0-RC2.jar中文-英文对照文档.zip
- protobuf-java-4.30.1.jar中文-英文对照文档.zip
- protobuf-java-4.30.2.jar中文-英文对照文档.zip
- protobuf-java-4.31.0-RC1.jar中文-英文对照文档.zip
- protobuf-java-4.31.0-RC2.jar中文-英文对照文档.zip
- spring-data-redis-1.0.0.M3.jar中文-英文对照文档.zip
- spring-data-redis-1.0.0.M1.jar中文-英文对照文档.zip
- spring-data-redis-1.0.0.M4.jar中文-英文对照文档.zip
- spring-data-redis-1.2.0.RC1.jar中文-英文对照文档.zip
- spring-data-redis-1.0.0.RC1.jar中文-英文对照文档.zip
- spring-data-redis-1.3.0.M1.jar中文-英文对照文档.zip
- spring-data-redis-1.3.0.RC1.jar中文-英文对照文档.zip
- spring-data-redis-1.4.0.M1.jar中文-英文对照文档.zip
- spring-data-redis-1.4.0.RC1.jar中文-英文对照文档.zip
- spring-data-redis-1.5.0.RC1.jar中文-英文对照文档.zip
- spring-data-redis-1.5.0.M1.jar中文-英文对照文档.zip


