Добавьте значения к легенде с боке - PullRequest
0 голосов
/ 14 января 2019

Можно ли поместить значения частей круговой диаграммы рядом с их именами в легенду?

Пример: У вас есть круговая диаграмма, подсчитывающая количество яблок, груш и апельсинов. 15 яблок, 10 груш и 13 апельсинов. Легенда выглядит так: Яблоко, груша, апельсин

Можно ли сделать так, чтобы это выглядело? Яблоко 15, груша 10, апельсин 13

Спасибо

Я немного посмотрел онлайн, но ничего не нашел

1 Ответ

0 голосов
/ 14 января 2019

Я использовал пример кода круговой диаграммы для создания этого примера. Я создал новый столбец в кадре данных, который содержит имя легенды.

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)
...