python-3.x - 如何使用 Legend 作为复选框在 python 中绘图?
问题描述
我一直在尝试绘制一个具有 3 列数据框的图表。一是“小时”,二是卢比的“金额”,三是“机器码”。我需要分析一台机器每小时进行的交易量。共有 67 个唯一的机器码。请在此处查看数据示例
这些是我一直在使用的库
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)
上面的代码显示了一些真正不同的东西,请在这里查看图表实际显示的内容,它为每台机器绘制了单一颜色,复选框实际上并没有命令图表
解决方案
推荐阅读
- php - Google Api 创建可通过链接 SpeadSheet 访问
- css - React 导入图像不适用于 CSS
- reactjs - 在 CodeSandbox CI 中出现 ENOENT 错误,但在 GitHub Actions 或本地没有
- asp.net - 邮递员发布请求响应带有空参数
- blockchain - Chainlink Feed 聚合器的实现
- c# - JavaScriptSerializer C# 中的 Json 序列化
- hive - 如何使用 HIVE 将多行添加到单个列
- java - 如何将字段从正文添加到条件
- ios - Xcode 13.1 + MacOS Monterey (12.0.1) + M1 芯片 (8gb) + 构建时间 + 系统挂起
- react-native - 为什么我总是要在 expo 版本之间切换