标签及字符串格式化
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.format、tooltip.pointFormat 及 legend.labelFormat
1. 变量
变量是格式化中用大括号包括的字符,例如 "The point value at {point.x} is {point.y}"
2. 数值格式化
数值格式化字符串是采用了 C 语言浮点型格式化的子集,格式化字符是在大括号内,变量之后,用冒号(:
)分隔的内容。默认情况下点号(.
)表示小数点,空格(
)代表千分符,当然这两个符号可以在 语言文字 选项集里中来设定。下面是一些实例:
3. 时间格式化
同数值格式化,时间格式化也是以冒号为分隔的。时间格式化字符中的符号同 时间格式化函数,下面是实例:
- 完整的时间格式化:
{value:%Y-%m-%d}
,在线试一试
三、格式化回调函数
对于需要灵活控制、自定义格式化逻辑的需求,我们可以用格式化回调函数来处理,格式化回调函数最终返回 HTML (部分HTML标签)内容。具体的使用可以见 xAxis.labels.formatter、tooltip.formatter 及 legend.labelFormatter 等,另外在格式化函数里你进行会需要用到 时间格式化函数 及 数值格式化函数