Как вручную установить пределы цветовой панели holoview?

Когда я пытаюсь ввести свой собственный тикер...

В более ранней камере...

ticker = FixedTicker(ticks=range(0, 10))

В следующей ячейке...

%%opts HeatMap [colorbar=True colorbar_opts={'ticker': ticker}]

Я получил...

TypeError [Call holoviews.ipython.show_traceback() for details]
MetaModel object got multiple values for keyword argument 'ticker'

Вот обратная связь...

  File "/Users/ahuang11/anaconda3/envs/tf/lib/python3.6/site-packages/holoviews/plotting/bokeh/element.py", line 757, in _init_glyphs
    renderer, glyph = self._init_glyph(plot, mapping, properties)

  File "/Users/ahuang11/anaconda3/envs/tf/lib/python3.6/site-packages/holoviews/plotting/bokeh/element.py", line 1201, in _init_glyph
    self._draw_colorbar(plot, self.handles['color_mapper'])

  File "/Users/ahuang11/anaconda3/envs/tf/lib/python3.6/site-packages/holoviews/plotting/bokeh/element.py", line 1100, in _draw_colorbar
    **dict(opts, **self.colorbar_opts))

TypeError: MetaModel object got multiple values for keyword argument 'ticker'

1 ответ

Решение

Цветовой диапазон и все другие диапазоны могут быть установлены на Dimension объекты элементов HoloViews. Когда вы объявляете HeatMap создаются три (или более) измерения. Первые два являются ключевыми измерениями (kdims), соответствующие осям x и y HeatMap. Во-вторых, есть два или более значения измерения (vdims) первый из которых сопоставлен с цветовой гаммой. Диапазоны измерений могут быть явно объявлены при построении объекта. Здесь мы устанавливаем цвет размера 'z', который должен быть именем любого столбца, который вы строите:

hv.HeatMap(..., vdims=hv.Dimension('z', range=(0, 10)))

Вы также можете использовать redim интерфейс для переопределения диапазона после факта. Это также будет работать, когда у вас есть коллекция объектов, поскольку она будет рекурсивно устанавливать диапазон для всех объектов, которые содержат это измерение, и возвращать новый объект. Это выглядит примерно так:

heatmap = hv.HeatMap(...)
redimensioned_heatmap = heatmap.redim.range(z=(0, 10))
Другие вопросы по тегам