我一直在尝试绘制一个图形,该图形的数据帧包含3列。第一个是“小时”,第二个是卢比中的“金额”,第三个是“机器代码”。我需要每小时分析一台机器的交易量。共有67个唯一的机器代码。 请在此处检查数据样本Here
这些是我一直在使用的图书馆
import numpy as np
from bokeh.io import output_notebook, show
from bokeh.layouts import row
from bokeh.palettes import Viridis3
from bokeh.plotting import figure
from bokeh.models import CheckboxGroup, CustomJS
output_notebook()
p = figure()
props = dict(line_width=4, line_alpha=0.7)
x = sl['Hour']
y = sl['amount']
现在,我已在所有机器代码后附加了一个列表标签[]
labels = []
active1 = []
for s in sl['machinecode'].unique():
labels.append(s)
active1.append(0)
我基本上想为所有这些机器代码创建复选框,一个用户在检查任何机器代码时都会绘制图形。如果用户再次检查另一个机器代码,则该机器代码的行会附加到图中,以便我可以在机器之间进行比较。
j =0
for i in sl['machinecode'].unique():
l = p.line(x, y, color=Viridis3[0], legend="Line:" , **props)
j=j+1
checkbox = CheckboxGroup(labels=labels,
active=active1, width=100)
checkbox.callback = CustomJS(args=dict(l=l, checkbox=checkbox),
code="""
l0.visible = 0 in checkbox.active;
l1.visible = 1 in checkbox.active;
l2.visible = 2 in checkbox.active;
""""")
layout = row(checkbox, p)
show(layout)