2024年07月07日 Python实现带时间限制的时序图 极客笔记
在数据分析和可视化中,时序图是一种常用的数据展示方式,用于展示数据随时间变化的趋势。但有时候我们需要对时序图中的数据进行筛选,例如只展示某个时间段内的数据。本文将介绍如何使用Python实现带时间限制的时序图,以便更好地展示数据。
首先,我们需要准备一些模拟的时序数据。在本文中,我们将使用NumPy库生成一个包含日期和数值的数据集。
import numpy as np
import pandas as pd
dates = pd.date_range('2021-01-01', periods=100)
values = np.random.rand(100)
df = pd.DataFrame({'date': dates, 'value': values})
print(df.head())
运行以上代码,我们将得到一个包含100个日期和对应随机数值的数据集。
date value
0 2021-01-01 0.033229
1 2021-01-02 0.798419
2 2021-01-03 0.738371
3 2021-01-04 0.825855
4 2021-01-05 0.400449
接下来,我们将使用Matplotlib库绘制时序图,展示数据随时间变化的趋势。
import matplotlib.pyplot as plt
plt.plot(df['date'], df['value'])
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time Series Plot')
plt.show()
现在,我们希望对时序图添加时间限制,只展示某个时间段内的数据。我们可以通过筛选数据集的方式实现这一目标。
start_date = '2021-03-01'
end_date = '2021-04-01'
filtered_df = df[(df['date'] >= start_date) & (df['date'] <= end_date)]
plt.plot(filtered_df['date'], filtered_df['value'])
plt.xlabel('Date')
plt.ylabel('Value')
plt.title('Time Series Plot with Time Limit')
plt.show()
运行以上代码,我们将得到只包含指定时间段数据的时序图。
除了静态时序图,我们还可以使用Plotly库创建交互式时序图,以便更好地展示数据。
import plotly.express as px
fig = px.line(filtered_df, x='date', y='value')
fig.update_layout(title='Interactive Time Series Plot with Time Limit')
fig.show()
运行以上代码,我们将得到一个交互式时序图,可以通过鼠标悬停查看具体数值。
通过以上步骤,我们使用Python实现了带时间限制的时序图。这种方式可以帮助我们更好地展示数据,突出特定时间段内的趋势和变化。
本文链接:http://so.lmcjl.com/news/8019/