Я делаю простое Curve
со значениями по оси X, выраженными в секундах (единицах СИ), со значениями порядка наносекунд.
Я хотел бы отформатировать отметки оси с помощью объекта hv.Dimension
, как описано в Как управлять форматом y-tick Holoviews? .Этот пример отлично работает при использовании бэкэнда matplotlib, но не работает при использовании боке (по умолчанию).
В настоящее время у меня есть специальный форматер, который умножает все мои значения на желаемую сумму и задает нужные единицы.
xs = np.linspace(0, 15e-6, 500)
xfmt = lambda x: round(x*1e6, ndigits=3)
c = hv.Curve({'x':xs, 'y':step_lowpass(xs, tau=.1e-6)},
kdims=[hv.Dimension('x', label='Time', unit='$\mu$s', value_format=xfmt)])
Это прекрасно работает при использовании бэкэнда matplotlib, однако при использовании бэкэнда Bokeh он не работает, выдавая следующее предупреждение:
WARNING:root:main: x dimension formatter could not be converted to tick formatter. Pyscript raised an error: list index out of range
И не используется форматер.Я также попытался напрямую указать объект bokeh.models.formatters.FuncTickFormatter
в качестве аргумента для value_format, однако это не работает, так как эти объекты не могут вызываться напрямую, а вместо этого содержат код, необходимый для форматирования тика в качестве атрибута.