python - Python Bokeh 在 legend.click_policy = 'hide' 或 'mute' 中定义预选的散景
问题描述
import pandas as pd
from bokeh.palettes import Spectral4
from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import AAPL, IBM, MSFT, GOOG
p = figure(plot_width=800, plot_height=250, x_axis_type="datetime")
p.title.text = 'Click on legend entries to hide the corresponding lines'
for data, name, color in zip([AAPL, IBM, MSFT, GOOG], ["AAPL", "IBM", "MSFT", "GOOG"], Spectral4):
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
p.line(df['date'], df['close'], line_width=2, color=color, alpha=0.8, legend=name)
p.legend.location = "top_left"
p.legend.click_policy="hide"
output_file("interactive_legend.html", title="interactive_legend.py example")
show(p)
默认情况下显示所有行。有没有办法在创建图表时隐藏除“IBM”之外的所有行?解决“隐藏”或“未隐藏”状态的标志是什么?
解决方案
您可以使用renderer.visible = False
隐藏一些字形
import pandas as pd
from bokeh.palettes import Spectral4
from bokeh.plotting import figure, show
from bokeh.sampledata.stocks import AAPL, IBM, MSFT, GOOG
p = figure(plot_width = 800, plot_height = 250, x_axis_type = "datetime", title = 'Glyphs hidden by default')
lines = {}
for data, name, color in zip([AAPL, IBM, MSFT, GOOG], ["AAPL", "IBM", "MSFT", "GOOG"], Spectral4):
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
lines[name] = p.line(df['date'], df['close'], line_width = 2, color = color, alpha = 0.8, legend = name)
lines[name].visible = True if name == "IBM" else False
p.legend.location = "top_left"
p.legend.click_policy = "hide"
show(p)
推荐阅读
- swift - Swift Mini-Max Sum 一个测试用例失败 - HackerRank
- java - Spring Boot,多对一关系获取 LAZY 或 EAGER
- python - How to save the output of a while loop within a for loop in Python?
- gitlab - GitLab CI: Two independent scheduled jobs
- javascript - How do I change gauge size with jQuery?
- azure-devops - Migrate TFS 2018 Update 3 to Azure DevOps Services
- django-models - django.db.utils.IntegrityError(无法创建唯一索引)
- android - Pass object or objects id to new activity
- mysql - How to remove quotes from req.params.id when sending query
- python - How can I fix an AttributeError while loading checkpoint?