首页 > 解决方案 > 如何为 HoloViews 中的点图手动设置颜色条的刻度位置?

问题描述

我有以下代码:

import numpy as np
import holoviews as hv
from bokeh.models import FixedTicker
hv.extension('bokeh')

points = hv.Points(np.random.randint(-3, 4, (20, 3)), vdims=['interval'])
points.opts(
    color='interval',
    size=10, 
    colorbar=True,
    color_levels=7,
    colorbar_opts={
        'major_label_overrides': {
            -3: 'high', 
            -2: 'medium', 
            -1: 'low',
            0: 'none', 
            1: 'low', 
            2: 'medium', 
            3: 'high'
        },
        'major_label_text_align': 'left',
    },
    cmap='RdYlGn',
)

这会产生类似的东西:

在此处输入图像描述

但是,我想更改刻度位置(到颜色箱的中间)。但是当我将以下项目添加到colorbar_opts字典时:

'ticker': FixedTicker(ticks=[-3, -2, -1, 0, 1, 2, 3]),

我收到此错误:

Traceback (most recent call last):

  File "C:\Users\pablo\AppData\Local\Continuum\anaconda3\envs\sandbox-py3.7\lib\site-packages\holoviews\plotting\bokeh\element.py", line 1017, in _init_glyphs
    renderer, glyph = self._init_glyph(plot, mapping, properties)

  File "C:\Users\pablo\AppData\Local\Continuum\anaconda3\envs\sandbox-py3.7\lib\site-packages\holoviews\plotting\bokeh\element.py", line 1561, in _init_glyph
    self._draw_colorbar(plot, v, k[:-12])

  File "C:\Users\pablo\AppData\Local\Continuum\anaconda3\envs\sandbox-py3.7\lib\site-packages\holoviews\plotting\bokeh\element.py", line 1392, in _draw_colorbar
    **dict(opts, **self.colorbar_opts))

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

如何设置颜色栏中刻度线的位置?

我正在使用 Python 3.7、HoloViews 1.11.2 和 Bokeh 1.0.4

标签: pythoncolorbarholoviews

解决方案


推荐阅读