将图例放在散景区域之外

问题描述 投票:6回答:2

我正在按照发现的示例here进行绘图

[不幸的是,我需要显示17条曲线,图例与它们重叠。我知道我可以创建一个图例对象,该图例对象可以像here一样显示在绘图区域之外,但是我有17条曲线,因此使用循环要方便得多。

您知道如何结合这两种方法吗?

python plot legend bokeh
2个回答
16
投票
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 from bokeh.models import Legend from bokeh.io import output_notebook output_notebook() p = figure(plot_width=800, plot_height=250, x_axis_type="datetime", toolbar_location='above') p.title.text = 'Click on legend entries to mute the corresponding lines' legend_it = [] 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']) c = p.line(df['date'], df['close'], line_width=2, color=color, alpha=0.8, muted_color=color, muted_alpha=0.2) legend_it.append((name, [c])) legend = Legend(items=legend_it) legend.click_policy="mute" p.add_layout(legend, 'right') show(p)

0
投票
from bokeh.models import CategoricalColorMapper, Legend from bokeh.palettes import Category10 from bokeh.plotting import figure, show from bokeh.sampledata.iris import flowers color_mapper = CategoricalColorMapper( factors=[x for x in flowers['species'].unique()], palette=Category10[10]) p = figure(height=350, width=500) p.add_layout(Legend(), 'right') p.circle("petal_length", "petal_width", source=flowers, legend_group='species', color=dict(field='species', transform=color_mapper)) show(p)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.