orginal_plot.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os
  2. import pandas as pd
  3. import seaborn as sns
  4. import matplotlib.pyplot as plt
  5. from matplotlib.ticker import MaxNLocator
  6. import warnings
  7. warnings.filterwarnings("ignore", category=FutureWarning) # 忽略特定警告
  8. plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体
  9. plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
  10. # 指定文件夹路径
  11. folder_path = r'C:/Users/laiwe/Desktop/风电/激光测量/测试数据/20250513/'
  12. # 遍历文件夹中的所有CSV文件
  13. for filename in os.listdir(folder_path):
  14. if filename.endswith('.csv'):
  15. csv_path = os.path.join(folder_path, filename)
  16. # 读取第2、4、9列的数据
  17. data = pd.read_csv(csv_path, usecols=[1, 3, 8], header=None, engine='c')
  18. # 绘制原始数据图
  19. data.columns = ['time', 'distance1', 'distance2']
  20. plt.figure(figsize=(300, 150))
  21. sns.scatterplot(data=data, x='time', y='distance1', s=50, color='green')
  22. sns.scatterplot(data=data, x='time', y='distance2', s=50, color='red')
  23. abxy = plt.gca() # 获取当前坐标轴对象
  24. plt.grid(linewidth=2) # 设置网格线宽度为2
  25. abxy.xaxis.set_major_locator(MaxNLocator(nbins=100)) # 设置x轴主刻度的最大数量为10
  26. plt.xlabel('时间', fontsize=16, fontweight='bold') # 添加x轴标签
  27. plt.ylabel('距离(m)', fontsize=16, fontweight='bold') # 添加y轴标签
  28. abxy.tick_params(axis='x', labelsize=14, labelcolor='black', width=2) # 设置x轴刻度标签
  29. abxy.tick_params(axis='y', labelsize=14, labelcolor='black', width=2) # 设置y轴刻度标签
  30. # 生成图像文件名
  31. image_filename = os.path.splitext(filename)[0] + '.png'
  32. image_path = os.path.join(folder_path, image_filename)
  33. # 保存图像
  34. plt.savefig(image_path, dpi=100, pil_kwargs={"icc_profile": False})
  35. plt.close()