如何使用“图例”作为复选框在python中进行绘制?

时间:2018-07-07 17:50:01

标签: python-3.x data-visualization jupyter bokeh data-analysis

我一直在尝试绘制一个图形,该图形的数据帧包含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)

上面的代码显示了与众不同的kindly check here what the graph is actually showing , it is plotting for every machine with a single color , checkboxes does not command the graph actually

0 个答案:

没有答案