Как создать пропорциональную (заранее определенную границу) цветную панель с библиотекой Python Bokeh - PullRequest
1 голос
/ 29 сентября 2019

Я хотел бы построить график с пропорциональной цветной полосой справа, как график 1, но с боке, а не с matplotlib:

Версия matplotlib: пропорциональная (предварительно определить границы)цветовая шкала с использованием цветов matplotlib. BoundaryNorm (bounds, cmap.N)

Но моя текущая версия боке выглядит так: правая цветная полоса не пропорциональна, хотя я и дал границы тикера

Пожалуйста, смотрите мой код версии боке. Хотя я дал границы тикера, но цветовая полоса все еще не пропорциональна.

ticker = FixedTicker(ticks=bounds)
bounds = [0, 5, 25, 75, 95,100]
color_bar = ColorBar(color_mapper=mapper, major_label_text_font_size='5pt',
                         ticker=ticker,
                         formatter=PrintfTickFormatter(format='%d%%'),
                         label_standoff=6, border_line_color=None, location=(0, 0))

Причина, по которой я использую bokeh, заключается в том, что я хотел бы использовать его с Django и иметь опцию tools в библиотеке bokeh.

Пожалуйста, дайте предложения. Заранее спасибо,

1 Ответ

0 голосов
/ 01 октября 2019

Я получил ответ от Discourse.bokeh.org Поддержка сообщества. Есть способ, но построить новую функцию будет еще лучше. Ответ здесь :

Bokeh 1.3.4 имеет только линейные и логарифмические цветовые картографы. Не существует встроенного понятия «сегментированного» цветового картографа. Один из способов сделать это - создать большую палитру с 100 записями, которая обеспечивает неявно нужные вам «разрывы». Например,

palette = ["yellow"] * 5 + ["pink"] * 20 + ["red"] * 50 + ...

Тогда эту палитру можно использовать сLinearColorMapper with low, high = (0, 100).

Сегментированный цветовой сопоставитель был бы разумным запросом для новой функции, а также отличной автономной задачей для нового участника. Пожалуйста, не стесняйтесь задавать вопрос GitHub , чтобы обсудить его.

Итак, обновленный график здесь, рад! the updated graph here, happy! ?

...