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


输出图如下所示:

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


输出图如下所示:

关注引自免费微信小程序:皆我百晓生
为了帮助你根据时间序列数据绘制采煤机牵引速度的折线图,确保所有点都能清晰展示,我们可以对你的现有代码进行一些调整。首先,你需要从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()自动限制横坐标刻度的数量可以帮助保持图形的可读性。如果图形仍然无法清晰显示所有点,可以尝试使用滚动平均或其他降噪方法来平滑数据。