使用Pandas Bokeh绘制数据帧时,如何合并子地块选项



我有一个数据帧,对应于我想要绘制的多变量时间序列。每个通道都会出现在自己的一组轴上,所有绘图都是垂直排列的。我还想添加Bokeh可用的交互式选项,包括通过单击标签从视图中删除一个频道的功能。

如果没有Bokeh,我可以使用子情节来获得单独的";静态";图垂直堆叠如下:

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
A=np.random.rand(800,10)
df=pd.DataFrame(data=A,columns=['a','b','c','d','e','f','g','h','i','j'])
df.plot(subplots=True)
plt.show()

我可以使用Bokeh在一组轴上绘制10个通道,使用这个:

import numpy as np
import pandas as pd
pd.set_option('plotting.backend', 'pandas_bokeh')
A=np.random.rand(800,10)
df=pd.DataFrame(data=A,columns=['a','b','c','d','e','f','g','h','i','j'])
df.plot_bokeh(kind="line")

生成的图形允许缩放、平移、频道取消选择等。然而,所有绘图信号都绘制在同一组轴上,我宁愿不这样做。

我使用这个代码片段在网格中绘制我的数字。

import pandas as pd
import pandas_bokeh
from bokeh.palettes import Dark2_5 as palette

def plot_grid(df: pd.DataFrame):
figs = []
color = itertools.cycle(palette)
for c in df.columns:
figs.append(df[c].plot_bokeh(show_figure=False, color=next(color)))
pandas_bokeh.plot_grid(figs, ncols=1, plot_width=1500)

ncols参数允许您指定每行需要的列数。希望这能有所帮助!

最新更新