使用bokeh为图例添加值

时间:2019-01-14 13:57:04

标签: python-3.x bokeh

是否可以在图例中将饼状图的各个值放在其名称旁边?

示例: 您有一个饼图,其中包含苹果,梨和橙子的数量。 15个苹果,10个梨和13个橙子。 图例如下所示: 苹果,梨,橙

是否可以使它看起来像这样? 苹果15,梨10,橙13

谢谢

我在网上看了一下,但是什么也没找到

1 个答案:

答案 0 :(得分:1)

我使用piechart example code创建了此示例。我在数据框中创建了一个新列,其中包含图例的名称。

from math import pi

import pandas as pd

from bokeh.io import output_file, show
from bokeh.palettes import Category20c
from bokeh.plotting import figure
from bokeh.transform import cumsum

output_file("pie.html")

x = {
    'Apple': 15,
    'Pear': 10,
    'Orange': 13
}

data = pd.Series(x).reset_index(name='value').rename(columns={'index':'fruit'})
data['angle'] = data['value']/data['value'].sum() * 2*pi
data['color'] = Category20c[len(x)]
sep = []
for i in range(len(data.index)):
    sep.append(': ')
data['legend'] = data['fruit'] + sep + data['value'].astype(str)

p = figure(plot_height=350, title="Pie Chart", toolbar_location=None,
           tools="hover", tooltips="@fruit: @value", x_range=(-0.5, 1.0))

p.wedge(x=0, y=1, radius=0.4,
        start_angle=cumsum('angle', include_zero=True), end_angle=cumsum('angle'),
        line_color="white", fill_color='color', legend='legend', source=data)

p.axis.axis_label=None
p.axis.visible=False
p.grid.grid_line_color = None

show(p)