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.1holoviews.__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
相关产品推荐
相关产品推荐

