Фиксирование расстояния между осями (галочки) на точечных диаграммах Боке - PullRequest
0 голосов
/ 09 января 2019

Я генерирую точечные диаграммы с помощью Bokeh с разными значениями Y для каждого значения X. Когда Bokeh генерирует график, он автоматически дополняет интервал по оси x в зависимости от количества нанесенных значений. Я хотел бы, чтобы все значения на оси х были расположены равномерно, независимо от количества отдельных точек данных. Я смотрел на ручную настройку тиков, но похоже, что я сам должен установить интервал, используя этот подход (то есть указать точные позиции). Я хотел бы, чтобы он автоматически устанавливал интервал равномерно, как это происходит при построении единичных пар значений x, y. Можно ли это сделать?

Вот пример, демонстрирующий поведение.

import pandas
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource

days =['Mon','Mon','Mon', 'Tues', 'Tues', 'Weds','Weds','Weds','Weds']
vals = [1,3,5,2,3,6,3,2,4]

df = pandas.DataFrame({'Day': days, 'Values':vals})

source = ColumnDataSource(df)

p = figure(x_range=df['Day'].tolist())
p.circle(x='Day', y='Values', source=source)
show(p)

1 Ответ

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

Вы передаете список строк как диапазон. Это создает категориальную ось. Тем не менее, список категорий для диапазона, как ожидается, будет уникальным, без дубликатов. Вы передаете список с повторяющимися значениями. Это на самом деле недопустимое использование, и результатом является неопределенное поведение. Для диапазона вы должны передать уникальный список категориальных факторов в том порядке, в котором вы хотите, чтобы они появлялись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...