概述
XCharts 是 Unity 平台上一款功能强大、易上手的数据可视化图表插件,基于 UGUI 实现,支持 线图(含曲线、面积、阶梯线等)、柱状图、饼图(环形、玫瑰图)、雷达图、散点图、热力图、K 线图、极坐标 & 平行坐标 等常见图表类型,同时提供扩展图表如 3D 柱状图、3D 饼图、漏斗图、甘特图、水位图、仪表盘、象形柱图、矩形树图、桑基图等。
主要特点包括:
纯代码绘制,无需额外贴图或 Shader,轻量高效;
可视化配置 + 实时预览,支持运行时动态调节;
高度定制:主题、组件、数据项皆可细粒度配置,并支持自定义绘制与回调;
支持大数据:可渲染万级数据点并支持采样;
丰富组件:图例、标题、提示框、缩放、标线等;
支持多平台及扩展插件(如 TextMeshPro 与新的输入系统)。
适用环境
仅适用于 Unity 平台(仅支持 Unity 5.6 及以上版本)。
理想用户应具备 Unity 和 UGUI 基础,了解 MonoBehaviour 脚本使用方式和 UI 编辑器使用方法。
安装方法
可通过以下三种方式导入 XCharts:
导入 UnityPackage:Unity 中选择
Assets → Import Package → Custom Package…
,导入下载的XCharts-3.13.0.unitypackage
并编译。使用 Package Manager:通过
Add package from Git URL...
输入 GitHub 地址https://github.com/XCharts-Team/XCharts.git
,即可在 Unity 包管理器中导入。
推荐同时导入 XCharts-Daemon 守护插件,可在启用 TextMeshPro 或新版输入系统时自动刷新相关 asmdef,避免编译错误。
快速新手上手示例
可视化方式(Editor 内)
- 导入插件后,在 Unity 菜单栏或层级视图中,右键选择 UI → XCharts → LineChart,即可生成一个默认折线图。
- 使用 Inspector 面板中的组件按钮进行配置:
- 通过 Add Serie 添加数据系列;
- 通过 Add Component 添加图例、提示框等;
- 在 Serie 下可添加 AreaStyle、Label 等子组件,配置样式;
- 调整后,在 Game 视图中可实时预览效果。
代码方式创建示例
using XCharts;
public class SimpleChart : MonoBehaviour
{
void Start()
{
var chart = gameObject.GetComponent<LineChart>();
if (chart == null)
{
chart = gameObject.AddComponent<LineChart>();
chart.Init();
}
chart.SetSize(580, 300);
var title = chart.EnsureChartComponent<Title>();
title.text = "Simple Line";
var tooltip = chart.EnsureChartComponent<Tooltip>();
tooltip.show = true;
var legend = chart.EnsureChartComponent<Legend>();
legend.show = false;
var xAxis = chart.EnsureChartComponent<XAxis>();
xAxis.splitNumber = 10;
xAxis.boundaryGap = true;
xAxis.type = Axis.AxisType.Category;
var yAxis = chart.EnsureChartComponent<YAxis>();
yAxis.type = Axis.AxisType.Value;
chart.RemoveData();
chart.AddSerie<Line>("line");
for (int i = 0; i < 10; i++)
{
chart.AddXAxisData("x" + i);
chart.AddData(0, Random.Range(10, 20));
}
}
}
该示例可以在 GameObject 上动态创建一个简单的折线图,并且通过接口操作添加数据和组件。
总结建议
步骤 | 说明 |
---|---|
插件导入 | 选择源码、.unitypackage 或者 Package Manager 导入,推荐同时安装 XCharts-Daemon |
可视化配置 | 推荐新手通过 Inspector 快速调整参数、添加组件 |
代码控制 | 使用 chart.AddSerie 、chart.AddData 、EnsureChartComponent 等接口可实现动态数据和样式 |
Demo 学习 | 浏览 XCharts-Demo 仓库或者在线教程、文档等资源 |