You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Holoviews/Bokeh 可视化中科学计数法刻度与轴标签渲染问题求助

Holoviews/Bokeh 可视化中科学计数法刻度与轴标签渲染问题求助

我最近在用Holoviews搭配Bokeh做可视化仪表盘,遇到了一个困扰:数据的数值偏大,导致坐标轴刻度自动切换成了科学计数法(比如1.00e+4、2.00e+5这种格式),看起来不太符合我想要的视觉效果。我构思了两种改进方案,但尝试后都没能成功,想请教下社区的朋友们怎么解决:

方案1:自定义刻度格式为2.0×10⁵或2.0E5形式

我查阅Bokeh官方文档后发现,应该使用CustomJSTickFormatter来实现自定义刻度格式化,但我完全不懂JavaScript,不知道该怎么编写对应的格式化逻辑,卡在了这一步。

方案2:缩放数据并修改轴标签(我更倾向于这个方案)

我计划把数据除以10⁴,然后将轴标签修改为类似X ×10⁴的形式,但尝试用LaTeX或MathML语法编写标签字符串时,标签总是被截断,无法完整渲染。

我的最小复现代码

使用的版本信息:

  • bokeh.__version__ = 3.6.1
  • holoviews.__version__ = 1.20.0
import numpy as np
import pandas as pd
import holoviews as hv

x = np.linspace(start=0, stop=100000, num=25)
y = np.linspace(start=0, stop=35, num=25)
df_test = pd.DataFrame({'x':x, 'y': y, 'x2':x/10000})
hv.Points(df_test, ['x2', 'y']).opts(xlabel=r'$$\text{ This is messed up } \times 10^6$$')

当前输出问题

运行代码后,轴标签只显示了This is messed up部分,后面的×10⁶完全没有渲染出来,就像被截断了一样。

我真心希望能搞定方案2,如果有人能提供方案1的JavaScript代码示例也非常感谢!

备注:内容来源于stack exchange,提问作者Bradley Sutliff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 15:49:51