如何在散景中仅显示每第 n 个分类票
How to show only evey nth categorical tickers in Bokeh
两年前有过同样的问题。好像当时不支持every nth categorical tickers
我的散景版本是 0.12.13。不知现在是否支持
简单地设置 p.xaxis.ticker = ['A', 'B, 'C'] 不起作用(抛出错误)
在我的仪表板中,初始绘图大小是浏览器视口的四分之一,并且 x 轴上挤满了许多股票代码和标签。所以我想只显示 10 个代码,然后在放大图时显示所有代码。
Bokeh 没有内置任何功能来执行此操作。你可以用 custom extension:
完成一些事情
from bokeh.models CategoricalTicker
JS_CODE = """
import {CategoricalTicker} from "models/tickers/categorical_ticker"
export class MyTicker extends CategoricalTicker
type: "MyTicker"
get_ticks: (start, end, range, cross_loc) ->
ticks = super(start, end, range, cross_loc)
# drops every other tick -- update to suit your specific needs
ticks.major = ticks.major.filter((element, index) -> index % 2 == 0)
return ticks
"""
class MyTicker(CategoricalTicker):
__implementation__ = JS_CODE
p.xaxis.ticker = MyTicker()
请注意,上面定义的简单 get_ticks
无法处理嵌套类别等更复杂的情况。
两年前有过同样的问题。好像当时不支持every nth categorical tickers
我的散景版本是 0.12.13。不知现在是否支持
简单地设置 p.xaxis.ticker = ['A', 'B, 'C'] 不起作用(抛出错误)
在我的仪表板中,初始绘图大小是浏览器视口的四分之一,并且 x 轴上挤满了许多股票代码和标签。所以我想只显示 10 个代码,然后在放大图时显示所有代码。
Bokeh 没有内置任何功能来执行此操作。你可以用 custom extension:
完成一些事情from bokeh.models CategoricalTicker
JS_CODE = """
import {CategoricalTicker} from "models/tickers/categorical_ticker"
export class MyTicker extends CategoricalTicker
type: "MyTicker"
get_ticks: (start, end, range, cross_loc) ->
ticks = super(start, end, range, cross_loc)
# drops every other tick -- update to suit your specific needs
ticks.major = ticks.major.filter((element, index) -> index % 2 == 0)
return ticks
"""
class MyTicker(CategoricalTicker):
__implementation__ = JS_CODE
p.xaxis.ticker = MyTicker()
请注意,上面定义的简单 get_ticks
无法处理嵌套类别等更复杂的情况。