欢迎访问宙启技术站
智能推送

使用Bokeh调色板展示时间序列数据的趋势和变化

发布时间:2023-12-26 21:03:20

Bokeh是一个用于交互式可视化的Python库,它提供了丰富的工具和调色板,可以展示时间序列数据的趋势和变化。在本文中,我们将使用Bokeh库来展示一个简单的时间序列数据集的趋势和变化。

首先,我们需要导入必要的库和数据集。假设我们有一个包含每月销售额的数据集,其中包括年份和销售额两列。

import pandas as pd 
from bokeh.plotting import figure, show 
from bokeh.io import output_notebook 
from bokeh.palettes import Category10_10

# 导入数据集
data = pd.read_csv('sales_data.csv')

接下来,我们可以创建一个新的DataFrame,以月份为索引,并计算每个月的销售额总和。

# 将日期列转换为pandas的日期时间类型
data['date'] = pd.to_datetime(data['date'])

# 创建一个新的DataFrame作为时间序列数据
time_series_data = data.groupby(pd.Grouper(key='date', freq='M')).sum()

# 创建一个新的列,包含月份
time_series_data['month'] = time_series_data.index.month

然后,我们可以创建一个Bokeh的Figure对象,并添加数据到图表中。

# 创建一个新的Bokeh图表对象
p = figure(title='Monthly Sales', 
           x_axis_label='Month', 
           y_axis_label='Sales', 
           plot_width=800, 
           plot_height=400)

# 添加数据到图表中
for i, column in enumerate(time_series_data.columns[:-1]):
    p.line(time_series_data['month'], 
           time_series_data[column], 
           line_color=Category10_10[i % 10], 
           legend_label=column)

接下来,我们可以添加一些交互性到图表中,如鼠标悬停提示和可缩放的X轴。

# 添加鼠标悬停提示
p.add_tools(HoverTool(tooltips=[
    ("Month", "@month"),
    ("Sales", "@$name")
], mode='vline'))

# 设置X轴可缩放
p.toolbar.active_drag = p.select_one(WheelZoomTool)

最后,我们可以在Jupyter Notebook中显示图表。

# 在Jupyter Notebook中显示图表
output_notebook()
show(p)

通过运行上述代码,我们可以得到一个展示每月销售趋势和变化的交互式图表。鼠标悬停在图表上时,会显示每个月的销售额。我们还可以通过拖动和缩放来查看不同时间段的数据。

总结起来,Bokeh调色板可以帮助我们以一种美观和直观的方式展示时间序列数据的趋势和变化。通过使用Bokeh提供的丰富工具和调色板,我们可以创建交互式图表,并提供一种更好的数据探索和交流方式。