!!!###!!!title=格式化插件——VisActor/VChart 教程文档!!!###!!!!!!###!!!description=VChart 从 `v1.10.0` 开始,支持了格式化扩展插件,提供更多格式化字符串的能力,包括:1. 数值文本格式化2. 时间文本格式化3. 数据变量替换!!!###!!!

格式化插件

VChart 从 v1.10.0 开始,支持了格式化扩展插件,提供更多格式化字符串的能力,包括:

  • 数值文本格式化
  • 时间文本格式化
  • 数据变量替换

如何使用格式化插件

格式化字符串支持使用数据内容替换,变量名需要用单括号{}括起来,例如:

// 数据
{
  year: 2016,
  population: 899447
},

formatter: `"The population in {year} year is {population}"`。

数值数据

数值格式化采用和 d3-formatter 类似的格式化约定。在格式化表达式中,与变量名之间用冒号隔开,例如:

  • 小数点后两位: {value:.2f}
  • 千位分隔符,无小数位: {value:,.0f}
  • 千位分隔符,小数点后一位: {value:,.1f}

常用的格式化类型有:

  • e:指数。
  • f:浮点数。
  • g:十进制或指数,四舍五入到有效数字。
  • r:十进制,四舍五入到有效数字。
  • s:带有 SI prefix(SI 前缀)的十进制数,四舍五入为有效数字。
  • %:乘以 100,带有百分号的十进制数。
  • p:乘以 100,四舍五入为有效数字,带有百分号的十进制数。
  • b:二进制数,四舍五入为整数。
  • o:八进制数,四舍五入为整数。
  • d:十进制数,四舍五入为整数。
  • x:十六进制数,使用小写字母,四舍五入为整数。
  • X:十六进制数,使用大写字母,四舍五入为整数。
  • c:在打印之前将整数转换为对应的 unicode 字符。
  • \(空\) - 和g类似,但是会去掉尾随零

除此以外,格式化插件还扩展了两种常用的数值格式化逻辑:

  • t: 保留指定小数位数,但不进行四舍五入。
  • z:小数数值,四舍五入到有效数字;整数数值,无小数部分。

例如:

// 数据
{
  value: 12.3893333;
  value2: 100;
}

formatter: '{value:.2f}'; // "12.39"
formatter: '{value:.2t}'; //  "12.38"

formatter: '{value:.2z}'; //  "12.39"
formatter: '{value2:.2z}'; //  "100"

~ 选项会在所有格式类型中修剪不重要的尾零。最常用的是与类型 r 、 e 、 s 和 % 结合使用。例如:

// 数据
{
  value: 1500;
}

formatter: '{value:s}'; // "1.50000k"
formatter: '{value:~s}'; //  "1.5k"

时间数据

与数值一样,日期也允许在冒号后面添加格式。允许的格式约定与 d3-time-format 类似。例如:

// 数据
{
  date: +new Date(2024, 5, 1);
}

// 完整日期: %Y-%m-%d
formatter: '{date:%Y-%m-%d}'; // "2024-05-01"

常用的日期格式化配置:

日期粒度格式配置日期内容示例数值范围
%Y年的全称2022
%b简写的月Jul
%B月的全称July
%m月份7[01, 12]
%a简写的周Wed
%A周的全称Wednesday
%d使用 0 填补位数的天1[01, 31]
%e使用空格填补位数的天1[ 1, 31]
%H24 小时制小时1[00, 23]
%I12 小时制小时1[01, 12]
%pAM 或 PMAM
%M分钟0[00, 59]
%S0[00, 61]
毫秒%L毫秒1[000, 999]

按需加载如何引入格式化插件

在通过按需加载使用 VChart 时,格式化插件需要手动注册使用:

import { VChart } from '@visactor/vchart';
import { registerFormatPlugin } from '@visactor/vchart';

VChart.useRegisters([registerFormatPlugin]);