sylitie18 2024-03-09 16:05 采纳率: 66.7%
浏览 15
已结题

python根据时间序列画折线图

目前使用matplotlib绘制时间序列的折线图:
1、现状及需求
(1)数据源为导入的.xlsx文件,共有51502行,142 列;
(2)采样周期为1s;
(3)以时间序列为横轴,某一列变量纵轴,打印出图片,要求所有点都能看清楚
2、代码

img

img

输出图如下所示:

img

  • 写回答

15条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-09 16:05
    关注

    引自免费微信小程序:皆我百晓生

    为了帮助你根据时间序列数据绘制采煤机牵引速度的折线图,确保所有点都能清晰展示,我们可以对你的现有代码进行一些调整。首先,你需要从Excel文件中选择你要展示的时间序列数据列,并且设置好图形的细节以适应大量数据点。这里是一个优化过的代码示例:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 读取Excel文件并转换时间戳列
    data = pd.read_excel(r'I:\Jupyter_notebook\麻塘1000采煤机数据整理\ParamData_3C230504010247_2023-10-27.xlsx')
    data['timestamp'] = pd.to_datetime(data['timestamp'])
    df_time_series = data.set_index('timestamp')
    
    # 选择要展示的列(假设是'采煤机牵引速度(m/min)')
    speed_data = df_time_series['采煤机牵引速度(m/min)']
    
    # 清理缺失值或不需要的字符
    speed_data = speed_data.replace(['-'], np.nan).dropna()
    
    # 设置图形样式和参数
    plt.style.use("ggplot")
    plt.rcParams["font.sans-serif"] = "KaiTi"
    plt.rcParams["axes.unicode_minus"] = False
    
    # 控制图形大小、分辨率以及线条细节
    fig, ax = plt.subplots(figsize=(15, 4), dpi=80)
    
    # 绘制折线图
    ax.plot(speed_data.index, 
            speed_data, 
            linestyle='-', 
            linewidth=0.5,  # 调整线宽以适应大量数据点
            color='steelblue', 
            marker='o', 
            markersize=1,  # 减小标记大小以适应大量数据点
            markeredgecolor='black',
            markerfacecolor='brown')
    
    # 设置图形元素
    ax.set_title('采煤机牵引速度')
    ax.set_xlabel('日期')
    ax.set_ylabel('速度 (m/min)')
    ax.tick_params(axis='both', which='both', labelsize=8)  # 调整刻度标签大小
    ax.xaxis.set_major_locator(plt.MaxNLocator(10))  # 自动选择合适的横坐标刻度数量
    
    # 剔除上边界和右边界的刻度
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    
    # 旋转x轴日期标签
    plt.gcf().autofmt_xdate(rotation=90)
    
    # 显示图形
    plt.show()
    

    请注意,对于大量数据点,通常需要适当降低线条宽度和标记大小以避免图形过于密集。此外,通过plt.MaxNLocator()自动限制横坐标刻度的数量可以帮助保持图形的可读性。如果图形仍然无法清晰显示所有点,可以尝试使用滚动平均或其他降噪方法来平滑数据。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(14条)

报告相同问题?

问题事件

  • 系统已结题 3月19日
  • 已采纳回答 3月11日
  • 创建了问题 3月9日