Как получить программный доступ к параметрам стиля боке-графика (описание, значение по умолчанию) - PullRequest
0 голосов
/ 10 мая 2018

Как говорится в вопросе, мне нужен способ программного доступа к описанию и значению по умолчанию для параметра графика, например, plot/width.

Итак, есть ли что-то, что содержит все параметры стиля, такие как width, xrotation, с его описанием и значениями по умолчанию?

1 Ответ

0 голосов
/ 10 мая 2018

Вам нужно вызвать .lookup в модели Bokeh (класс или экземпляр), чтобы получить дескриптор свойства, после чего он доступен через атрибут __doc__:

In [1]: from bokeh.models import DataRange1d

In [2]: print(DataRange1d.lookup('start').__doc__)

    An explicitly supplied range start. If provided, will override
    automatically computed start value.

Вы можете захотеть dedent или убрать пробелы из результата, в зависимости от вашего варианта использования.

Если у вас есть или вы можете создать фактические экземпляры моделей Боке по умолчанию, тогда вы можете получить значение свойства по умолчанию, просто проверив его, то есть посмотрите значение range.start. Это, вероятно, предпочтительнее, если это возможно.

В противном случае, если вы имеете дело только с классами, получить значение по умолчанию немного сложнее:

In [7]: d = DataRange1d.lookup('start')

In [8]: print(d.class_default(DataRange1d))
None

Обратите внимание, что некоторые модели Bokeh имеют значения по умолчанию для конкретного экземпляра, к ним также можно получить доступ следующим образом:

In [9]: r = DataRange1d()

In [11]: print(d.instance_default(r))
None

Но опять же, если у вас есть экземпляр, вы также можете просто посмотреть на .start напрямую. Если вы не установили его явно, вы увидите значение по умолчанию. (Также обратите внимание, что в конкретном случае DataRange1d класс и экземпляр по умолчанию совпадают.)


EDIT Также, возможно, стоит упомянуть, что в репозитории проекта есть сценарий, который будет выгружать BLSON-объект JSON с каждой моделью Bokeh и ее свойствами, включая значения по умолчанию, тип и т. Д. сценарий очень большой , но если лучше, чтобы вся информация была в одном месте, это обеспечит:

https://github.com/bokeh/bokeh/blob/master/scripts/spec.py

...