python - 散景-带百分号的格式标签
问题描述
使用 Python3 和 Bokeh 0.13.0
我有一个使用像 22.6 这样的浮点数的图。这些数字实际上是百分比。我在一条线上的每个点都有标签,但我想不出一种在标签中包含 % 符号的方法(比如 22.6%)。我能够很好地格式化轴,但标签让我很难过。这是定义标签的代码部分。
labels = LabelSet(x='x', y='y', text='y', level='glyph',y_range_name="line",
x_offset=-8, y_offset=10, source=source_line, render_mode='canvas',
text_font_size='8pt', text_color='white', background_fill_color="gray")
p.add_layout(labels)
任何帮助,将不胜感激
解决方案
你有两个选择:
您可以在 python 中预先格式化所有数据,将其存储在您的新列中
ColumnDataSource
,并使用它来驱动标签文本,即类似source.data['formatted_y'] = ["%f %" % x for x in source.data['y']] LabelSet(text='formatted_y', ...)
您可以使用 a
CustomJSTransform
来转换 JavaScript 端的数据,例如from bokeh.models import CustomJSTransform from bokeh.transform import transform formatter = CustomJSTransform('y', func="", v_func=""" out = [] for (i=0; i < xs.length; i ++) { out.push(xs[i] + " %") } return out """) LabelSet(text=transform('y', formatter), ...)
注意:未经测试,因为您没有提供可以对其进行测试的完整示例代码,但应该在大致范围内
推荐阅读
- java - 如何在Java中计算两次之间的差异?
- jags - 数组索引大于 d 的数组上限
- scheme - 方案 - 使用表格的导数
- ios - 使用 SwiftUI 时无法正确调整 SKScene 的大小
- django - 如何在 django 中向消费者发送信号?
- html - 嵌套多个 mat-radio-button 未按预期工作
- python-3.x - 我想检查另一个 csv 文件中是否存在 csv 中的值返回 1
- android - 带有碎片的内存泄漏
- sql - SQL 查询以获取特定结果。它可以是 Lambda 或 LINQ
- python - 使用不同的 {key:value} 字典运行 Groupby