标签及字符串格式化

优质
小牛编辑
135浏览
2023-12-01

Highcharts 图表中的任意文字都可以通过 format (格式化字符串)或 formatter (格式化回调函数) 属性来进行修改,format 总是有对应的一个或多个 formatter ,其中 format 字符串简单方便,formatter 回调函数则更加灵活,他们两都是兼容 JSON 格式的。

一、HTML标签

默认情况下,Highcharts 中的文字及标签使用 SVG 渲染的,所有在默认情况下,Highcharts 只支持少量的和文字相关 HTML 标签:<b><strong><i><em><br/><span>。这些标签(除 br )支持 style 属性来设置样式,不过支持的样式也仅限和文字相关的样式。

在线试一试

图表中大多数文字还支持 HTML 渲染默认,即设置 userHTML = true 来开启。HTML 模式支持全部的 HTML 标签,你可以轻松的添加图片、表格到图表的标签中,例如在提示框中添加表格、在坐标轴标签添加图片等。HTML 默认有如下限制:

  • HTML 渲染的标签内容是独立在 <svg> 标签外的,这就导致了标签是在 SVG 元素的顶层(z-index,即层叠)
  • 在导出中并不会生效(即生成导出图片中的标签不会以 HTML 渲染)。我们提供了实验性属性 exporting.allowHTML 可以解决这个问题

在线试一试

HTML 渲染模式在低版本浏览器进行双向文字排版中会出现一些问题,详细请查看我们的文档中关于 国际化 相关的内容。

二、格式化字符串

格式化字符串是包含了变量的标签模板。格式化字符串最早是在 Highcharts 2.3 中推出的,并在 Highcharts 3.0 中增强了功能,增加了数值格式化及时间格式化。具体的使用实例是在 xAxis.labels.formattooltip.pointFormatlegend.labelFormat

1. 变量

变量是格式化中用大括号包括的字符,例如 "The point value at {point.x} is {point.y}"

2. 数值格式化

数值格式化字符串是采用了 C 语言浮点型格式化的子集,格式化字符是在大括号内,变量之后,用冒号(:)分隔的内容。默认情况下点号(.)表示小数点,空格( )代表千分符,当然这两个符号可以在 语言文字 选项集里中来设定。下面是一些实例:

3. 时间格式化

同数值格式化,时间格式化也是以冒号为分隔的。时间格式化字符中的符号同 时间格式化函数,下面是实例:

三、格式化回调函数

对于需要灵活控制、自定义格式化逻辑的需求,我们可以用格式化回调函数来处理,格式化回调函数最终返回 HTML (部分HTML标签)内容。具体的使用可以见 xAxis.labels.formattertooltip.formatterlegend.labelFormatter 等,另外在格式化函数里你进行会需要用到 时间格式化函数数值格式化函数