如何在使用Pandas-Bokeh绘制数据框时加入子图选项?

3
我有一个多元时间序列对应的数据框,我想要画出它的图表。每个通道都会在自己的坐标轴上显示,所有的图表都按垂直方向排列。我还想添加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")

生成的图表允许缩放、平移、通道取消选择等操作,但所有绘图信号都绘制在同一组坐标轴上,而我不希望这样做。
1个回答

1
我使用这段代码片段在网格中绘制我的图形。
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)
< p > ncols 参数允许您指定每行要显示的列数。希望这可以帮助您!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接