Как реализовать собственное расширение bokehjs, которое использует источник, как image_rgba?
Я создаю собственное расширение для боке. Это все работает, и пример в документации был полезен. Тем не менее, я пытаюсь отразить то, что делает image_rgba, а именно с изображениями, которые вы можете сделать:
figure.image_rgba(
image="image_path_in_source",
source=ColumnDataSource(dict(image_path_in_source=[np.array(...)]))
)
# or
figure.image_rgba(image=[np.array(...)])
Я посмотрел в исходный код, чтобы воссоздать официальный способ реализации этого, но я получаю ошибку. Позвольте мне объяснить в коде:
Моя пользовательская модель определяет:
CustomModel.define({
source: [p.Instance],
dx: [p.NumberSpec],
dy: [p.NumberSpec]
});
И план состоит в том, чтобы использовать конструкцию спецификации данных при изменении источника:
const data = this.model.materialize_dataspecs(source);
Но когда я отправляю string
за dx
со стороны питона, он жалуется:
Number property 'dx' given invalid value: "path_to_dx"
at e.validate (properties.js:134)
at e.t._init (properties.js:112)
at e.t.update (properties.js:46)
Что очевидно верно, так как я сказал, что это будет NumberSpec
и я послал string
, Но как мне сделать это правильно?
1 ответ
Ах, я забыл изменить свойство модели python на NumberSpec:
class CustomModel(LayoutDOM):
__implementation__ = '...'
source = Instance(ColumnDataSource)
dx = NumberSpec()
dy = NumberSpec()