前言
XCharts是开源且比较强大的插件,在Unity3d中搭建UI时常常使用的数据图表的制作插件,
特别是当下的数字沙盘、数字孪生等项目中应用较广。笔者公司也一直在使用该插件,本文主要是在开发过程中的一个小需求引发的整理分享。在项目中需要将数据进行百分比展示,这就需要设置数据的格式,本以为这个小问题随便查询一下就能解决,结果还是没有查到,这里笔者查了一些说明文档,并将常用的格式进行了整理。
这里我以饼图(Pie)为例,以假的国家GDP为数据,进行测试:
文本标签格式
文本标签格式是默认显示在图标上的名称文字/数值等信息,默认格式的文字为空且只显示系列名:
这里的“Formatter”框为标签内容字符串模版格式器,支持用 \n
换行。我们根据如下模板变量说明可以在范围内进行自定义显示格式:
{a}
:系列名;{b}
:数据名;{c}
:数据值;{d}
:百分比。示例:{b}:{c}
。
按上面的说明,系统默认值给了数据名,即:{b}。
如果我们需要单个文本标签显示的文字为:
GDP
国家:数值(百分比)
我们就这样来设置:
{a}\n{b}:{c}({d}%)
效果如图:
信息展示过于密集了,并不会,如果有自定义的需求,按需要进行设置即可。
以上操作也可以通过代码来进行修改:
pieChart.series.GetSerie("GDP").label.formatter = "{a}\n{b}:{c}({d}%)";
当然数据的显示还可以配合numericFormatter进行调整格式,标准数字格式字符串。用于将数值格式化显示为字符串。
使用
Axx
的形式:A
是格式说明符的单字符,支持C
货币、D
十进制、E
指数、F
顶点数、G
常规、N
数字、P
百分比、R
往返过程、X
十六进制等九种。xx
是精度说明,从0
-99
。
这个格式也会影响上面“Formatter的{c}
:数据值;{d}
:百分比”的展示。
这里我们将NumericFormatter设置为P:
这里也可以进行代码设置:
pieChart.series.GetSerie("GDP").label.numericFormatter = "P";
再将NumericFormatter设置为E:
以上的图片可见数据展示发生了变化,而且都是错误的了。谨慎结合使用。
提示框文本格式
提示框的文本格式是通过“Tooltip 0”来进行设置的,当鼠标悬停或者点击饼图中的单个项目时,会显示该提示。这里的默认内容为:
这里通过Formatter 提示框单项的字符串模版格式器来设置。支持用 \n
换行。当formatter
不为空时,优先使用formatter
,否则使用itemFormatter
。具体说明如下:
- 模板变量有
{.}
、{a}
、{b}
、{c}
、{d}
。 *
{.}
为当前所指示或index
为0
的serie
的对应颜色的圆点。 *
{a}
为当前所指示或index
为0
的serie
的系列名name
。 *
{b}
为当前所指示或index
为0
的serie
的数据项serieData
的name
,或者类目值(如折线图的X
轴)。{c}
为当前所指示或index
为0
的serie
的y
维(dimesion
为1
)的数值。 *{d}
为当前所指示或index
为0
的serie
的y
维(dimesion
为1
)百分比值,注意不带%
号。 *
{.1}
表示指定index
为1
的serie
对应颜色的圆点。 *
{a1}
、{b1}
、{c1}
中的1
表示指定index
为1
的serie
。 *
{c1:2}
表示索引为1
的serie
的当前指示数据项的第3
个数据(一个数据项有多个数据,index为2
表示第3
个数据)。
如果我们需要显示如下格式:
颜色圆点 数据项名称: 数据百分比 [系列名]
则应该这样设置Formatter :
{.} {b}:{d}% [{a}]
设置的脚本:
pieChart.tooltip.formatter = "{.} {b}:{d}% [{a}]";
效果如下:
其它的关联设置可以参考使用:
titleFormatter
:提示框标题内容的字符串模版格式器。支持用\n
换行。仅当itemFormatter
生效时才有效。可以单独设置占位符{i}
表示忽略不显示标题内容。itemFormatter
:提示框单个serie
或数据项内容的字符串模版格式器。支持用\n
换行。当formatter
不为空时,优先使用formatter
,否则使用itemFormatter
。numericFormatter
:标准数字格式字符串。用于将数值格式化显示为字符串。使用Axx
的形式:A
是格式说明符的单字符,支持C
货币、D
十进制、E
指数、F
顶点数、G
常规、N
数字、P
百分比、R
往返过程、X
十六进制等九种。xx
是精度说明,从0
-99
。