Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

news2024/10/7 18:20:22

前言

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}。 *
    {.}为当前所指示或index0serie的对应颜色的圆点。 *
    {a}为当前所指示或index0serie的系列名name。 *
    {b}为当前所指示或index0serie的数据项serieDataname,或者类目值(如折线图的X轴)。
  • {c}为当前所指示或index0seriey维(dimesion1)的数值。 * {d}为当前所指示或index0seriey维(dimesion1)百分比值,注意不带%号。 *
    {.1}表示指定index1serie对应颜色的圆点。 *
    {a1}{b1}{c1}中的1表示指定index1serie。 *
    {c1:2}表示索引为1serie的当前指示数据项的第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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片

此代码适用的场景是一个页面有多个数据图表。 首先需要拿到你生成数据图表的数据, 然后赋值给一个数组,数组需要在data定义,还需要去重。 // 检查是否有相同的parameter值const hasDuplicate this.toImageArr.some(iiem > iiem.paramete…

由于找不到xinput1_3.dll,无法继续执行代码的解决方法都有哪些?

关于由于找不到xinput1_3.dll,无法继续执行代码这个问题,其实在网上经常看别人提及,要解决这个问题,还是不难的,今天小编就来给大家详细的说说关于这个问题的解决方法吧,本文会介绍多种的修复方法,下面一起…

商品数据封装接口(PHP/Java/Python)

封装 在面向对象程式设计方法中,封装是指—种将抽象性函式接口的实现细节部分包装、隐藏起来的方法 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问 要访问该类的代码和数据,必须通过严格的接口控制 封装最…

提升生产效率的关键:如何选择适合您企业的设备管理系统?

在现代工业生产中,设备管理对于提升生产效率和降低成本至关重要。一个高效的设备管理系统可以帮助企业实现设备的有效监控、维护和优化,从而提高设备的可靠性、降低停机时间,并最终提升生产效率。选择适合企业的设备管理系统可能是一个复杂的…

Vision Pro:多人XR协作这样玩才对味

早在iOS 15系统更新中,苹果就推出了SharePlay功能,该功能主要针对多人协作和社交,允许用户在FaceTime会话中一起看剧、听歌、共享屏幕。Vision Pro头显也支持该功能,允许用户共享AR图像和空间上下文信息,实现远程可视化…

LeetCode 每日一题——2178. 拆分成最多数目的正偶数之和

1.题目描述 2178. 拆分成最多数目的正偶数之和 给你一个整数 finalSum 。请你将它拆分成若干个 互不相同 的正偶数之和,且拆分出来的正偶数数目 最多 。 比方说,给你 finalSum 12 ,那么这些拆分是 符合要求 的(互不相同的正偶…

Spring Boot 中的服务发现

Spring Boot 中的服务发现 Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了很多工具和组件来简化 Web 应用程序的开发。其中,服务发现是 Spring Boot 中的一个非常重要的组件,它可以帮助我们自动地发现和管理应用程序中的服务。 什…

Prometheus 时序数据

一 时序索引 Prometheus 存储的是时序数据,时间戳(timestamp)来源于服务端本地的系 统时间。Prometheus 使用 Unix 时间戳(即自 1970 年 1 月 1 日 00:00:00 UTC 起经过的秒数)表示时间。 数 据 格 式 : …

C#核心知识回顾——10.List、Dictionary、数据结构、LinkedList

1.List List<int> list new List<int>(); List<String> strings new List<String>();//增list.Add(0);list.Add(1);List<int> ints new List<int>();ints.Add(0);list.AddRange(ints);//插入list.Insert(0, 1);// 位置0插入1//删//1.移…

Java内存模型—工作流程、volatile原理

导入 最近在做项目的时候发现很多业务上用到了多线程&#xff0c;通过多线程去提升程序的一个运行效率&#xff0c;借此机会来复盘一下关于并发编程的相关内容。为什么要使用volatile&#xff1f;volatile底层原理是什么&#xff1f;JMM内存模型解决的是什么问题&#xff1f;带…

基于 OpenCV 开发实现眨眼计数器

文末提供免费的源代码下载链接 在本教程中,我们将了解如何使用 Dlib、Python 和 OpenCV 创建眨眼检测器/计数器。 我们将首先使用 Dlib 的人脸检测器来检测视频中的人脸。然后我们将使用 Dlib 中的形状预测器来确定眼睛在面部的位置。 最后,我们将使用眼睛的标志来计算眼睛…

小白必看:这些项目可以让你轻松月入过万

月入五W的互联网副业野路子。总有一个适合你!刷到这篇回答的。就不要在看其他的了。 这些互联网项目你也能做 1、认识个哥们&#xff0c;每天去一些热门的寺庙拍视频开直播&#xff0c;帮人代请手串&#xff0c;每串赚15元&#xff0c;月入5万多&#xff0c;非常非常稳定。 2…

基于SpringBoot+vue的口腔管家平台设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Image Sensor的像素时钟计算

本文介绍Image Sensor的像素时钟计算。 在配置Image Sensor寄存器的过程中&#xff0c;像素时钟至关重要&#xff0c;它的正确设置关系到帧率&#xff0c;曝光参数的正确与否。我们从相关资料中了解到像素时钟有多种方法&#xff0c;究竟该选择哪一种呢&#xff0c;本文来对常…

【C++】函数绑定器技术

1. 函数绑定器技术&#xff0c;什么情况可以用到这种技术实现? 占位符和函数绑定器技术&#xff08;如std::bind&#xff09;可以在以下情况下使用&#xff1a; 参数绑定&#xff1a;当你想要绑定函数的某些参数&#xff0c;但又不想立即提供这些参数的值时&#xff0c;可以…

在idea中使用Git技术

1.配置git环境 打开idea,点击file->setting->搜索git&#xff0c; 将git的安装路径填写进去 2.去gitee创建一个远程仓库 3.拉入一个.gitignore文件&#xff0c;过滤掉不需要管理的文件 4.在idea进行如下操作 5.选择要提交的内容 目前只是保存在了本地仓库 6.推送到远端…

简单尝试将go项目用宝塔部署到服务器

最近写了一个go项目的小demo打算放到服务器上&#xff0c;但是中间遇到一些问题&#xff0c;这里我记录下&#xff1a; 一、找一个文件夹将打包后的go项目放进去&#xff0c;如图 二、安装执行exe文件的wine 终端执行命令 yum install wine 终端在这&#xff0c;如图&#xf…

macOS Sonoma 14 beta 3 (23A5286g) Boot ISO 原版可引导镜像下载

macOS Sonoma 14 beta 3 (23A5286g) Boot ISO 原版可引导镜像&#xff0c;7 月 5 日&#xff08;北京时间今日凌晨&#xff09;已发布 本站下载的 macOS 软件包&#xff0c;既可以拖拽到 Applications&#xff08;应用程序&#xff09;下直接安装&#xff0c;也可以制作启动 U…

从0开始学架构-架构的定义

从0开始学架构-架构的定义 文章目录 从0开始学架构-架构的定义系统与子系统模块与组件框架与架构软件框架&#xff08;Software framework&#xff09;软件架构区别 重新定义架构&#xff1a;4R 架构软件架构重新定义 三组容易混淆的概念&#xff1a; 系统与子系统模块与组件框…

文档翻译器那么多,你知道文档翻译pdf哪个软件好吗?

曾经有一个年轻的学生&#xff0c;名叫小杰。他是一名热爱学习的人&#xff0c;对于跨文化交流和学习外语充满了好奇和热情。然而&#xff0c;他在阅读一些重要的学术论文和研究资料时&#xff0c;常常遇到一个令人头痛的问题&#xff1a;如何将外文的pdf文档准确地翻译成自己的…