您现在的位置是:主页 > news > 动态网站建设常用的APP/长沙seo工作室

动态网站建设常用的APP/长沙seo工作室

admin2025/5/2 4:54:09news

简介动态网站建设常用的APP,长沙seo工作室,天津西青区离哪个火车站近,我想网站建设文章目录1 问题描述2 下载曲线数据3 用python简单的 绘制曲线4 滤波平滑处理5 设置图题、图例、字体、网格、保存曲线图6 补充6.1 python 曲线平滑处理——方法总结-详解6.2 Tensorboard可视化训练曲线导出数据用Python绘制6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、…

动态网站建设常用的APP,长沙seo工作室,天津西青区离哪个火车站近,我想网站建设文章目录1 问题描述2 下载曲线数据3 用python简单的 绘制曲线4 滤波平滑处理5 设置图题、图例、字体、网格、保存曲线图6 补充6.1 python 曲线平滑处理——方法总结-详解6.2 Tensorboard可视化训练曲线导出数据用Python绘制6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、…

文章目录

  • 1 问题描述
  • 2 下载曲线数据
  • 3 用python简单的 绘制曲线
  • 4 滤波平滑处理
  • 5 设置图题、图例、字体、网格、保存曲线图
  • 6 补充
    • 6.1 python 曲线平滑处理——方法总结-详解
    • 6.2 Tensorboard可视化训练曲线导出数据用Python绘制
    • 6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、网络结构图等
    • 6.4 PyTorch常用小工具-Tensorboard、Summary、Profiler
  • 7 源码下载、曲线数据下载

1 问题描述

当我们使用PyTorch可视化工具-Tensorboard打开训练曲线时,有时希望多条曲线放在一张图像显示、对比。
在这里插入图片描述
当我们写论文时,希望多条曲线放在一张图像对比、显示。
直接截图放文档里,可比性差,而且原来的坐标轴的数字太小不能修改,导致看不清。
在这里插入图片描述
这是我们需要,将数据导出,用python matplotlib处理多个csv文件,在一张图上画多条曲线

2 下载曲线数据

将曲线数据用表格的形式下载,然后用python自己绘制曲线图;
下载格式 .csv
在这里插入图片描述
数据下载好后,重命名
在这里插入图片描述
在这里插入图片描述

3 用python简单的 绘制曲线

from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
import numpy as npfiles = sorted(glob.glob("D:/python/pltt/train_thres_error/*.csv"))    #读取目录下所有以.csv结尾的文件,这里可以添加绝对路径
for file in files:filename = basename(file).rsplit('.', 1)[0]         #用.来分割文件名,取前半部分,例如XX.csv,取XX                                                print('\r'+ filename + "  ", flush = True)                                                             with open(file) as f:                                                                                csvreader = csv.reader(f, delimiter = ",", quotechar='"')                                       for line in range(1):  #1代表从文件第2行开始读取next (csvreader)  print("lines: ",line) #打印行数x = []                                                                                    y = []    #横纵坐标分别建立了两个listfor row in csvreader:x.append(float(row[1]))   #读取第23列数据                                                            y.append(float(row[2]))   #读取数据,放入list                                                             # 可视化图线plt.plot(x, y)  plt.show()   

在这里插入图片描述
可以看到上面的曲线震荡的很厉害,不利于观察整体趋势,需要滤波处理;
tensorboard显示的曲线是经过平滑处理过的(其灰黑色的背景就平滑处理前的波形);

4 滤波平滑处理

Savitzky-Golay 滤波器讲解

#Savitzky-Golay 滤波器实现曲线平滑
'''scipy.signal.savgol_filter(y, window_length, polyorder)y--为要滤波的信号window_length--即窗口长度取值为奇数且不能超过len(x)。它越大,则平滑效果越明显;越小,则更贴近原始曲线。polyorder--为多项式拟合的阶数。它越小,则平滑效果越明显;越大,则更贴近原始曲线。'''

详细实现

from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
import numpy as np# 使用Savitzky-Golay 滤波器后得到平滑图线
from scipy.signal import savgol_filterfiles = sorted(glob.glob("D:/python/pltt/train_thres_error/*.csv"))    #读取目录下所有以.csv结尾的文件,这里可以添加绝对路径
for file in files:filename = basename(file).rsplit('.', 1)[0]         #用.来分割文件名,取前半部分,例如XX.csv,取XX                                                print('\r'+ filename + "  ", flush = True)                                                             with open(file) as f:                                                                                csvreader = csv.reader(f, delimiter = ",", quotechar='"')                                       for line in range(1):  #1代表从文件第2行开始读取next (csvreader)  print("lines: ",line) #打印行数x = []                                                                                    y = []    #横纵坐标分别建立了两个listfor row in csvreader:x.append(float(row[1]))   #读取第23列数据                                                            y.append(float(row[2]))   #读取数据,放入list                                                             #Savitzky-Golay 滤波器实现曲线平滑'''scipy.signal.savgol_filter(y, window_length, polyorder)y--为要滤波的信号window_length--即窗口长度取值为奇数且不能超过len(x)。它越大,则平滑效果越明显;越小,则更贴近原始曲线。polyorder--为多项式拟合的阶数。它越小,则平滑效果越明显;越大,则更贴近原始曲线。'''y = savgol_filter(y, 99, 3, mode= 'nearest')# 可视化图线plt.plot(x, y)
plt.show()                                                                                               

在这里插入图片描述

5 设置图题、图例、字体、网格、保存曲线图

from matplotlib import pyplot as plt
import csv
import glob
from os.path import basename
from scipy.interpolate import make_interp_spline
import numpy as np# 使用Savitzky-Golay 滤波器后得到平滑图线
from scipy.signal import savgol_filter#dpi参数指定绘图对象的分辨率,即每英寸多少个像素 ;figsize:指定figure的宽和高,单位为英寸 
fig=plt.figure(dpi = 80, figsize=(15,8))#plt.title("Train_thres_error",fontsize = 16)
plt.xlabel("Iterations", fontsize = 25)    #横坐标
plt.ylabel("Train_thres_error (mm)", fontsize = 25)        #纵坐标
files = sorted(glob.glob("D:/python/pltt/train_thres_error/*.csv"))    #读取目录下所有以.csv结尾的文件,这里可以添加绝对路径
for file in files:filename = basename(file).rsplit('.', 1)[0]         #用.来分割文件名,取前半部分,例如XX.csv,取XX                                                print('\r'+ filename + "  ", flush = True)                                                             with open(file) as f:                                                                                csvreader = csv.reader(f, delimiter = ",", quotechar='"')                                       for line in range(1):  #1代表从文件第2行开始读取next (csvreader)  print("lines: ",line) #打印行数x = []                                                                                    y = []    #横纵坐标分别建立了两个listfor row in csvreader:x.append(float(row[1]))   #读取第23列数据                                                            y.append(float(row[2]))   #读取数据,放入list                                                             # plt.xlim((0,90000)) #横轴范围# plt.ylim((0,0.9))   #纵轴范围plt.tick_params(labelsize=20)#设置坐标刻度值的字体大小#Savitzky-Golay 滤波器实现曲线平滑'''scipy.signal.savgol_filter(y, window_length, polyorder)y--为要滤波的信号window_length--即窗口长度取值为奇数且不能超过len(x)。它越大,则平滑效果越明显;越小,则更贴近原始曲线。polyorder--为多项式拟合的阶数。它越小,则平滑效果越明显;越大,则更贴近原始曲线。'''y = savgol_filter(y, 55, 3, mode= 'nearest')# 可视化图线plt.plot(x, y, label = '%s' % filename,linewidth=2.0)#plt.legend()函数的作用是给图像加图例。plt.legend(frameon=True,loc="upper right",fontsize=25) #分别为图例有边框、图例放在右上角、图例大小#plt.grid()#添加网格plt.savefig('D:/python/pltt/Train_thres_error' + '.png',dpi = 80)   #保存了绘制的图像     print("Done processing " + str(len(files)) + " files.")  
plt.grid()#添加网格 plt.show()         

在这里插入图片描述

6 补充

6.1 python 曲线平滑处理——方法总结-详解

python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)

6.2 Tensorboard可视化训练曲线导出数据用Python绘制

Tensorboard可视化训练曲线导出数据用Python绘制

6.3 PyTorch可视化工具-Tensorboard在线查看训练曲线、网络结构图等

Tensorboard在线查看训练曲线、网络结构图等

6.4 PyTorch常用小工具-Tensorboard、Summary、Profiler

PyTorch常用小工具-Tensorboard、Summary、Profiler

7 源码下载、曲线数据下载

在一张图上绘制多条曲线?Python处理多个csv文件生成叠加曲线图-综合示例 下载