Я использую bokeh 1.0.4, и я хотел бы создать графическое изображение в боке, используя match_aspect=True
. Вот пример кода для иллюстрации:
from bokeh.models.ranges import DataRange1d
from bokeh.plotting import figure, show
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
plot = figure(match_aspect=True)
plot.image([arr], x=0, y=0, dw=3, dh=2)
show(plot)
Вот что я получаю:
Вокруг данных много пустого пространства, слишком много для моего приложения, и я хотел бы, чтобы оси были более узкими - зная, что в настоящее время это невозможно сделать идеально, см. Этот другой вопрос в раздел «Обновление».
Итак, я попытался использовать параметр range_padding
, который должен быть относительно размеров изображения (единица измерения по умолчанию: проценты), но он не работает для меня, например. если я использую
from bokeh.models.ranges import DataRange1d
from bokeh.plotting import figure, show
import numpy as np
arr = np.array([[1,2,3],[4,5,6]])
x_range = DataRange1d(range_padding=5, range_padding_units='percent')
y_range = DataRange1d(range_padding=5, range_padding_units='percent')
plot = figure(x_range=x_range, y_range=y_range, match_aspect=True)
plot.image([arr], x=0, y=0, dw=3, dh=2)
show(plot)
отступ еще больше:
range_padding">
Маленькие значения заполнения, такие как 0.05
, похоже, не имеют никакого эффекта. Также я не могу использовать start
и end
аргументы для диапазонов, потому что тогда
соответствующее соотношение сторон потеряно. Квадрат в пространстве данных должен соответствовать квадрату на экране.
Я что-то упустил при использовании здесь параметров range_padding
?
У кого-нибудь есть идеи, как уменьшить пространство вокруг изображения таким образом, чтобы
соответствующий аспект сохраняется?
Обновление
Я бы не хотел устанавливать высоту и ширину графика на фиксированные значения, потому что я также хочу добавить цветную полосу и, возможно, другие вещи позже, что приведет к непредсказуемому увеличению размеров графика, так что пропорции не будут совпадать больше