Python Bokeh пончик диаграммы категории, подсчет среднего подкатегории - PullRequest
0 голосов
/ 11 сентября 2018

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

d = Donut(train.groupby(['main_cat','sub_cat']).price.mean(), hover_text='mean',width=500,height=500)
show(d)

Для sub_cat значения рассчитываются правильно, но для main_cat вместо отображения среднего значения для main_cat отображается сумма средних значений sub_cat для конкретного main_cat.Какие изменения нужно внести в код bokeh или код python, чтобы правильно отображать средние значения main_cat?Ваша поддержка высоко ценится.

1 Ответ

0 голосов
/ 11 сентября 2018

Там, наверное, нет пути. Donut был частью старого bokeh.charts API, который устарел и впоследствии был удален из Bokeh в прошлом году. В частности, любые проблемы, проблемы или отсутствующие функции никогда не получат никакой дополнительной работы. Он заброшен и не поддерживается и не должен использоваться. Если вы хотите использовать Bokeh для отображения диаграмм пончиков, вы можете использовать глиф annular_wedge, чтобы отображать детали из пончиков:

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

x = { 'United States': 157, 'United Kingdom': 93, 'Japan': 89, 'China': 63,
    'Germany': 44, 'India': 42, 'Italy': 40, 'Australia': 35,
    'Brazil': 32, 'France': 31, 'Taiwan': 31, 'Spain': 29 }

data = pd.Series(x).reset_index(name='value').rename(columns={'index':'country'})
data['angle'] = data['value']/data['value'].sum() * 2*pi
data['color'] = Category20c[len(x)]

p = figure(plot_height=350)

p.annular_wedge(x=0, y=1, inner_radius=0.2, outer_radius=0.4,
        start_angle=cumsum('angle', include_zero=True), end_angle=cumsum('angle'),
        line_color="white", fill_color='color', legend='country', source=data)

show(p)

enter image description here

...