Unity数据可视化图表插件XCharts

概述

XCharts 是 Unity 平台上一款功能强大、易上手的数据可视化图表插件,基于 UGUI 实现,支持 线图(含曲线、面积、阶梯线等)、柱状图、饼图(环形、玫瑰图)、雷达图、散点图、热力图、K 线图、极坐标 & 平行坐标 等常见图表类型,同时提供扩展图表如 3D 柱状图、3D 饼图、漏斗图、甘特图、水位图、仪表盘、象形柱图、矩形树图、桑基图等

主要特点包括:

  • 纯代码绘制,无需额外贴图或 Shader,轻量高效;

  • 可视化配置 + 实时预览,支持运行时动态调节;

  • 高度定制:主题、组件、数据项皆可细粒度配置,并支持自定义绘制与回调;

  • 支持大数据:可渲染万级数据点并支持采样;

  • 丰富组件:图例、标题、提示框、缩放、标线等;

  • 支持多平台及扩展插件(如 TextMeshPro 与新的输入系统)。

适用环境

  • 仅适用于 Unity 平台(仅支持 Unity 5.6 及以上版本)。

  • 理想用户应具备 Unity 和 UGUI 基础,了解 MonoBehaviour 脚本使用方式和 UI 编辑器使用方法。

安装方法

可通过以下三种方式导入 XCharts:

  1. 导入 UnityPackage :Unity 中选择 Assets → Import Package → Custom Package...,导入下载的 XCharts-3.13.0.unitypackage 并编译。

  2. 使用 Package Manager :通过 Add package from Git URL... 输入 GitHub 地址 https://github.com/XCharts-Team/XCharts.git,即可在 Unity 包管理器中导入。

推荐同时导入 XCharts-Daemon 守护插件,可在启用 TextMeshPro 或新版输入系统时自动刷新相关 asmdef,避免编译错误。

快速新手上手示例

可视化方式(Editor 内)

  1. 导入插件后,在 Unity 菜单栏或层级视图中,右键选择 UI → XCharts → LineChart,即可生成一个默认折线图。
  2. 使用 Inspector 面板中的组件按钮进行配置:
    1. 通过 Add Serie 添加数据系列;
    2. 通过 Add Component 添加图例、提示框等;
    3. 在 Serie 下可添加 AreaStyle、Label 等子组件,配置样式;
    4. 调整后,在 Game 视图中可实时预览效果。

代码方式创建示例

cs 复制代码
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.AddSeriechart.AddDataEnsureChartComponent 等接口可实现动态数据和样式
Demo 学习 浏览 XCharts-Demo 仓库或者在线教程、文档等资源
相关推荐
lrh302510 小时前
Custom SRP - 16 Render Scale
3d·unity·srp·render pipeline·render scale
Elastic 中国社区官方博客11 小时前
Kibana:使用 ES|QL 构建地图,对国家或地区的指标进行对比
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索·kibana
A242073493013 小时前
JavaScript图表制作:从入门到精通
开发语言·javascript·信息可视化
ellis197018 小时前
Unity出安卓包知识点汇总
android·unity
JHC00000020 小时前
dy直播间评论保存插件
java·后端·python·spring cloud·信息可视化
我是哈哈hh21 小时前
【Python数据分析】数据可视化(全)
开发语言·python·信息可视化·数据挖掘·数据分析
csdn56597385021 小时前
借助 MCP 赋能数据可视化,让数据‘燃’起来
信息可视化·mcp
大数据魔法师1 天前
昆明天气数据分析与挖掘(三)- 昆明天气数据可视化分析
信息可视化·数据分析·finebi
Robot侠1 天前
ROS1从入门到精通 2:ROS1核心概念详解(节点、话题、服务一网打尽)
unity·游戏引擎·ros·机器人操作系统
世洋Blog1 天前
装饰器模式实践:告别臃肿的继承链,优雅解耦初始化状态管理
unity·设计模式·c#·装饰器模式