【Unity3D插件】图表插件XCharts分享
发布日期:2021-06-30 11:40:05
浏览次数:2
分类:技术文章
本文共 4037 字,大约阅读时间需要 13 分钟。
推荐阅读
一、前言
XCharts插件是一款基于Unity3D的UGUI系统的插件,可以绘制折线图、曲线图、饼状图、雷达图、散点图、热力图等等,功能强大,但是参数超多 - -,下面就来学习一下这个插件的使用吧
二、原文
原文链接:https://blog.csdn.net/monitor1394/article/details/102762068
大佬花费一年多的时间开发出来的插件,实在是太强了,但是最让我佩服的不是他的技术,而是他能起的比娃早睡的比娃晚,哈哈哈- 插件的Github地址:
- 常见问题:
- 插件下载:
- 接口文档:
- 参数配置:
- 新手教程:
三、快速入门
3-1、首先下载安装包
XChartsDemo 是示例Demo,推荐导入,可以查看各类图表的效果3-2、将资源包导入到Unity中
3-3、Demo中有各种图表的效果,如下图所示:
3-4、搭建简单场景
在Hierarchy视图下,先选中Canvas,然后选择Create→XCharts->LineChart:
注意,Chart需要建在Canvas层级下面,因为这个图标是以UGUI为基础的。- LineChart:折线图
- BarChart:柱状图
- PieChart:饼图
- RadarChart:雷达图
- ScatterChart:散点图
- HeatmapChart:热力图
- GaugeChart:仪表盘
- RingChart:趋势图
- PolarChart:极区图
- LiquidChart:液位图
5、一个简单的折线图就出来了
6、在Inspector视图可以查看调整各个组件的参数,Game 视图会实时反馈调整的效果。 *注意:不同版本之间可能界面有些区别,但是功能都差不多的这个是新版本的界面:
3-5、 修改参数
将x轴和y轴的值进行修改:
修改x轴的值: y轴的值修改在:Series→Serie0→Data: 比如: 如果想要都显示整数: 设置YAxis 0→Interval: 设置为1即可。 这个在Inspector面板修改属性,在Game 和Scene视图都是实时显示的,不用运行程序四、使用代码构建图表
4-1、代码
using System.Collections.Generic;using UnityEngine;using XCharts;public class XchartsDemo : MonoBehaviour{ public GameObject chart; void Start() { CreateChart(); } //创建图表 private void CreateChart() { ListxAxisValue = new List (); xAxisValue.Add("周一"); xAxisValue.Add("周二"); xAxisValue.Add("周三"); xAxisValue.Add("周四"); xAxisValue.Add("周五"); List yAxisValue = new List (); yAxisValue.Add(8); yAxisValue.Add(7); yAxisValue.Add(5); yAxisValue.Add(7); yAxisValue.Add(8); CreateChart(chart, "折线图", "星期数", "工作时间", SerieType.Line, LineType.Normal, xAxisValue, yAxisValue); } /// /// 生成图表 /// /// 图表组件 /// 图表表头 /// 坐标轴是否留白 /// x轴的轴名 /// y轴的轴名 /// 设置是什么类型图表 /// 什么类型线段 /// x轴的值 /// y轴的值 public void CreateChart(GameObject _chart, string _title, string xAxisName, string yAxisName, SerieType _serietype, LineType _linetype, ListxAxisValue, List yAxisValue) { var chart = _chart.GetComponent (); //表头设置 chart.title.show = true; chart.title.text = _title; //背景图 chart.background.gameObject.SetActive(chart.background.show); //提示框 chart.tooltip.show = true; chart.tooltip.titleFormatter = " "; //图例组件 chart.legend.show = false; //x轴的设置 chart.xAxis0.show = true; chart.xAxis0.type = Axis.AxisType.Category; chart.xAxis0.splitNumber = 11; chart.xAxis0.boundaryGap = false; chart.xAxis0.axisName.show = true; chart.xAxis0.axisName.name = xAxisName; chart.xAxis1.show = false; //y轴的设置 chart.yAxis0.show = true; chart.yAxis0.type = Axis.AxisType.Value; chart.yAxis0.show = true; chart.yAxis0.splitNumber = 10; chart.yAxis0.interval = 1; chart.yAxis0.axisLabel.show = true; chart.yAxis0.axisName.show = true; chart.yAxis0.axisName.name = yAxisName; chart.yAxis1.show = false; //标记的图形 SerieSymbol sy = new SerieSymbol(); sy.show = true; sy.type = SerieSymbolType.Circle; sy.gap = 2; sy.sizeType = SerieSymbolSizeType.Custom; sy.size = 7; //线段的样式设置 LineStyle ls = new LineStyle(); ls.show = true; ls.type = LineStyle.Type.Solid; ls.toColor = new Color32(18, 240, 111, 255); ls.toColor2 = new Color32(244, 29, 140, 255); ls.width = 2.5f; //图表上的文本标签的样式 SerieLabel sl = new SerieLabel(); sl.show = true; sl.position = SerieLabel.Position.Outside; sl.offset = new Vector3(0, 20, 0); sl.lineWidth = 25; //图表动画 SerieAnimation sa = new SerieAnimation(); sa.enable = true; //y轴的值的设置 chart.series.list[0].animation = sa; chart.series.list[0].label = sl; chart.series.list[0].lineStyle = ls; chart.series.list[0].symbol = sy; chart.series.list[0].name = ""; chart.series.list[0].lineType = _linetype; //清空值 chart.RemoveData(); chart.AddSerie(_serietype); //添加x轴的值 for (int i = 0; i < xAxisValue.Count; i++) { chart.AddXAxisData(xAxisValue[i]); } //添加y轴的值 foreach (float item in yAxisValue) { chart.AddData(0, item); } }}
4-2、效果图
五、后言
还有很多参数效果可以用来尝试,作者将所有可能用到的接口参数都开放出来了,只需要获取到LineChart组件,然后就可以进行各种设置
真正的运用到项目中,还需要大家自己多摸索了。
转载地址:https://itmonon.blog.csdn.net/article/details/109264499 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月18日 04时06分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux下开发Qt界面程序时命令行传参数的一个坑
2019-04-30
SourceInsight使用技巧(转)
2019-04-30
QT之旅——post 文件
2019-04-30
树莓派为连接不同Wifi分配固定IP的方法
2019-04-30
[转]Linux 下编译、安装、配置 QT
2019-04-30
新手教学看eMule 0.50a Xtreme 8.0设置
2019-04-30
如何在Linux使用Eclipse + CDT开发C/C++程序?
2019-04-30
Eclipse官网下载页面的Packages 和Developer Builds区别
2019-04-30
在CentOS 6.4安装Qt5.0.1
2019-04-30
深入浅出TCP之send和recv
2019-04-30
yum和apt-get的区别
2019-04-30
vim中文帮助的安装
2019-04-30
linux下获取所有文件夹和文件,支持nfs和xfs
2019-04-30
用分区魔术师把linux所占的分区删除后重写mbr
2019-04-30
软件架构师书籍
2019-04-30
Java程序员到架构师的推荐阅读书籍
2019-04-30
LFS、BLFS、ALFS、HLFS的区别
2019-04-30
国外知名网站评出对程序员最具影响力的图书(附下载)
2019-04-30
敏捷开发与极限编程
2019-04-30
如何获取system()函数的pid
2019-04-30