Как установить начальный масштаб боке-диаграммы группы pandas с большим количеством категорий - PullRequest
0 голосов
/ 02 мая 2020

Я строю данные covid-19 для стран, сгруппированных по регионам Всемирного банка, используя pandas и Bokeh.

from bokeh.io import output_file, show
from bokeh.palettes import Spectral5
from bokeh.plotting import figure
from bokeh.transform import factor_cmap

group = data.groupby(["region", "CountryName"])

index_cmap = factor_cmap(
    'region_CountryName', 
    palette=Spectral5, 
    factors=sorted(data.region.unique()), 
    end=1
)

p = figure(plot_width=800, plot_height=600, title="Confirmed cases per 100k people by country",
           x_range=group, toolbar_location="left")

p.vbar(x='region_CountryName', top='ConfirmedPer100k_max', width=1, source=group,
       line_color="white", fill_color=index_cmap, )

p.y_range.start = 0
p.xgrid.grid_line_color = None
p.xaxis.major_label_orientation = 3.14159/2
p.xaxis.group_label_orientation = 3.14159/2
p.outline_line_color = None

show(p)

И я получаю cluttered graph like this one

Я хотел бы установить какое-то начальное масштабирование по оси X, чтобы получить более управляемое изображение like this one, которое я получил, увеличив вручную.

Есть предложения?

1 Ответ

0 голосов
/ 02 мая 2020

Вы должны быть в состоянии выполнить sh с помощью параметра x_range. В этом примере диапазон x графика будет первым 20 странами. Вы можете настроить по мере необходимости. Вам также, возможно, придется немного повозиться, чтобы получить правильный group_cn_list. Трудно сказать, не видя ваших данных. Если вы можете опубликовать пример df для воспроизводимости, это поможет.

group_cn_list = group["CountryName"].tolist()

p = figure(plot_width=800, plot_height=600, title="Confirmed cases per 100k people by country",
x_range=group_cn_list[0:20], toolbar_location="left")
...