GithubHelp home page GithubHelp logo

xcharts-team / xcharts Goto Github PK

View Code? Open in Web Editor NEW
3.1K 42.0 550.0 47.83 MB

A charting and data visualization library for Unity. Unity数据可视化图表插件。

Home Page: https://xcharts-team.github.io

License: MIT License

C# 99.97% JavaScript 0.03%
unity ugui chart data-visualization graphics charting

xcharts's Introduction

XCharts

A powerful, easy-to-use, configurable charting and data visualization library for Unity.
Unity数据可视化图表插件。
English README

XCharts

一款基于UGUI的功能强大的简单易用的Unity数据可视化图表插件。支持折线图柱状图饼图雷达图散点图热力图环形图K线图极坐标平行坐标等十几种内置图表,以及3D饼图3D柱图3D金字塔漏斗图仪表盘水位图象形柱图甘特图矩形树图桑基图3D折线图关系图等十几种扩展图表。

XCharts 官方主页
XCharts 在线示例

XCharts 教程:5分钟上手 XCharts
XCharts API文档
XCharts 常见问题
XCharts 配置项手册
XCharts 更新日志
XCharts 订阅服务

特性

  • 纯代码绘制:图表纯代码绘制,无需额外的贴图和Shader资源。
  • 可视化配置:参数可视化配置,效果实时预览,支持运行时代码动态修改配置和数据。
  • 高自由定制:支持从主题和配置参数上任意调整;支持代码自定义绘制,自定义回调以及自定义实现图表。
  • 多内置图表:支持线图、柱状图、饼图、雷达图、散点图、热力图、环形图、K线图、极坐标、平行坐标等多种内置图表。
  • 多扩展图表:支持3D柱图、3D饼图、漏斗图、金字塔、仪表盘、水位图、象形柱图、甘特图、矩形树图、桑基图、3D折线图、关系图等多种扩展图表。
  • 多扩展组件:支持表格、统计数值等多种扩展UI组件。
  • 多图表组合:支持内置图表的任意组合,同一图中可同时显示多个相同或不同类型的图表。
  • 多种坐标系:支持直角坐标系、极坐标系、单轴等多种坐标系。
  • 丰富的组件:支持标题、图例、提示框、标线、标域、数据区域缩放、视觉映射等常用组件。
  • 多样式线图:支持直线图、曲线图、虚线图、面积图、阶梯线图等多种线图。
  • 多样式柱图:支持并列柱图、堆叠柱图、堆积百分比柱图、斑马柱图、胶囊柱图等多种柱状图。
  • 多样式饼图:支持环形图、玫瑰图、环形玫瑰图等多种饼图。
  • 丰富的线条:支持实线、曲线、阶梯线、虚线、点线、点划线、双点划线等线条。
  • 自定义绘制:支持自定义图表内容绘制,提供绘制点、线、面等其他图形的强大的绘图API。
  • 大数据绘制:支持万级大数据量绘制;支持采样绘制;特殊的简化图表支持更优的性能。
  • 自定义主题:支持主题定制、导入和导出,内置明暗两种默认主题。
  • 动画和交互:支持渐入动画、渐出动画、变更动画、新增动画、交互动画等多种动画;支持多平台的数据筛选、视图缩放、细节展示等交互操作。
  • 第三方扩展:支持无缝接入TexMeshProNew Input System
  • 版本和兼容:支持所有5.6以上的Unity版本;支持全平台运行。

截图

内置图表

扩展图表

仓库

  • XCharts XCharts核心功能,完全免费。
  • XCharts-Daemon XCharts守护程序,用于确保XCharts更新时的编译正常。非必须,但建议使用。
  • XCharts-Demo XCharts官方示例,不包含扩展图表部分。订阅购买扩展图表后可导入示例。
  • XCharts-Pro XCharts专业版,包含所有扩展图表和扩展组件。订阅SVIP后可访问使用。
  • XCharts-Pro-Demo XCharts专业版官方示例,包含所有扩展图表和扩展组件的示例。订阅SVIP后可访问使用。
  • XCharts-UI XCharts的扩展UI组件。订阅VIP后可访问使用。
  • XCharts-Bar3DChart XCharts扩展图表:3D柱图。订阅购买后可访问使用。
  • XCharts-FunnelChart XCharts扩展图表:漏斗图。订阅购买后可访问使用。
  • XCharts-GanttChart XCharts扩展图表:甘特图。订阅购买后可访问使用。
  • XCharts-GaugeChart XCharts扩展图表:仪表盘。订阅购买后可访问使用。
  • XCharts-LiquidChart XCharts扩展图表:水位图。订阅购买后可访问使用。
  • XCharts-PictorialBarChart XCharts扩展图表:象形住图。订阅购买后可访问使用。
  • XCharts-Pie3DChart XCharts扩展图表:3D饼图。订阅购买后可访问使用。
  • XCharts-PyramidChart XCharts扩展图表:3D金字塔。订阅购买后可访问使用。
  • XCharts-TreemapChart XCharts扩展图表:矩形树图。订阅购买后可访问使用。
  • XCharts-SankeyChart XCharts扩展图表:桑基图。订阅购买后可访问使用。
  • XCharts-Line3DChart XCharts扩展图表:3D折线图。订阅购买后可访问使用。
  • XCharts-GraphChart XCharts扩展图表:关系图。订阅购买后可访问使用。

分支

  • master XCharts3.0的开发分支。最新的修改和功能都先提交到master分支,稳定后再发布release版本。
  • 3.0 XCharts3.0的稳定分支。一般一个月一发布,master分支稳定后,merge3.0分支,并发布release版本。
  • 2.0 XCharts2.0的稳定分支。带Demo,目前基本不再维护,仅修改严重bug。
  • 2.0-upm XCharts2.0的稳定UMP分支。不带Demo,只包含Package部分,不再维护。
  • 1.0 XCharts1.0的稳定分支。带Demo,不再维护。
  • 1.0-upm XCharts1.0的稳定UMP分支。不带Demo,不再维护。

使用

  • 导入XChartsunitypackage或者源码到项目。建议也导入XCharts守护程序 XCharts-Daemon
  • Hierarchy视图下右键选择XCharts->LineChart,即可创建一个默认的折线图。
  • Inspector视图下的Add SerieAdd Main Component按钮可以添加Serie组件
  • Inspector视图下可以调整各个组件的参数,Game视图可看到实时效果。
  • 更多细节,请看【XCharts教程:5分钟上手教程】
  • 首次使用,建议先认真看一遍教程。

注意

  • XCharts3.0不完全兼容XCharts2.0版本。 升级3.0时,部分代码和配置可能需要重新调整。建议旧项目可以继续使用XCharts2.0,新项目推荐使用XCharts3.0
  • XCharts2.0只维护不加新功能。 2.0只修复严重bug,原则上不再加新功能。
  • XCharts支持Unity 5.6及以上版本。 但由于版本测试有限难免疏漏,发现问题可提Issue
  • 本仓库只包含XCharts源码,不包含Demo示例部分。 需要查看Demo示例源码请到XCharts-Demo仓库。也可以在浏览器查看运行效果 在线Demo

FAQ

  • XCharts可以免费使用吗? XCharts使用MIT协议,可以免费使用。也可以订阅VIP享受更多增值服务。

  • XCharts支持代码动态添加和修改数据吗?支持从Excel或数据库中获取数据吗? XCharts提供了各种数据操作的接口,支持代码动态修改配置,添加和修改数据,但数据来源需要自己解析和获取,再调用XCharts的接口添加到图表。

  • XCharts除了用在Unity平台,还能用在Winform或WPF等平台吗?
    XCharts只支持在Unity平台使用。理论上任何支持UGUIUnity版本都能运行XCharts

  • 锯齿怎么解决?支持多大量级的数据?
    XCharts是基于UGUI实现的,所以UGUI中碰到的问题,在XCharts中也会存在。比如锯齿问题,比如Mesh顶点数超65535的问题。这两个问题的解决可参考问答16问答27
    由于Mesh65535顶点数的限制,目前XCharts的单条Line支持约2万的数据量,当然开启采样可以支持更多数据的绘制,但同时也会更消耗CPU。

日志

Licenses

  • MIT License
  • 可免费商用,可二次开发。
  • 扩展图表和高级功能部分需购买使用授权。

订阅

  • XCharts核心库是开源的,可免费使用的。在此基础上,我们也提供多种订阅服务以满足不同用户的需求,订阅详情☞ 请看这里
  • 订阅不是必须的,不影响XCharts的核心功能使用。
  • 订阅是按年付费,订阅到期后,不要求必须续订,但中断订阅期间无法享受技术更新和支持等服务。

其他

xcharts's People

Contributors

ambitroc avatar bian-sh avatar ernest-su avatar monitor1394 avatar sericaer avatar stefanbursuc avatar svr2kos2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xcharts's Issues

Any english doc planned?

Hi!

I just found this tool and I find it amazing, thanks for your work!

Do you have by any chance planned to release an english version of the doc?

Thanks!

背景色更改成透明

背景色只能采用RGB颜色,我想让背景透明,让背后的设备也暴露出来,但是我找不到更改透明度的入口...

tooltips 的 numericformatter 目前只对 {c} 起作用,{d} 不起作用

#rt

问题一:

numericformatter 只对itemformatter {c} 起作用,{d} 不起作用

问题二:

在tooltip上,numericformatter 目前只能一对多,但这是有问题的:
比如{c} 为人数,{d}为百分比 ,当我想要百分比保留2位小数,那么此时 人数会出现 4.00人 这样的奇怪情况。

综上:

建议让{c} {d} 支持 {c:f2} {d:f2} 这种写法 ,方便联想,也保持了 ToString API 种formatter 的用户使用惯性,解决了上面提到的 numericformater 面临一对多时出现的问题

发布时有几处跟Editor有关的错误

Series Radar JsonDataSupport三个是代码里引用了UnityEditor的命名空间,但是没有使用,我直接删除了,还有CoordinateChart和LineChart是因为重写了BaseChart的Reset方法,BaseChart的Reset方法加了#if UNITY_EDITOR,但是子类的Reset没有加#if UNITY_EDITOR,发布时会因为找不到重写的方法报错,这个我在子类的Reset方法也加了#if UNITY_EDITOR。
这几个小问题处理完了之后可以成功发布,但编辑器里还是会有两个错误,好像是绘图相关的。
希望大佬有时间修复一下,或者我可以把我的改动提交

对数刻度坐标轴

希望可以扩展出对数坐标轴(X\Y轴均支持)的功能,支持以10为底、以自然数e为底,或其他任意数为底。

Change format of big numbers

First of all, thanks for your time developing such a great tool to display 2d graphs.

I'm having trouble to display big numbers in a formatted way. It would be nice if the string showed when hovering some data point could be shown as: "1,345,000.0" instead of "1345000.0", for example.

Do you know in which of the scripts I can achive this?

关于图标的点击事件

作者可以加点图片的区域对外的鼠标事件嘛 如鼠标进入柱状图某条数据的事件,点击事件,离开事件等。这将是一个非常好用的功能。感谢作者

轴标记不跟随轴移动

把X轴的onZero设置为false后,X轴自动对齐到Y轴的最小值(Y轴取值范围(-1,3))-1,但是轴标记没有跟随移动。

Only UGUI?

Yo,

Is there any possibility of having support for NGUI?

增加适配分屏后事件响应

当前现象:在分屏AB屏时,鼠标在A屏操作时,B屏里的xcharts会响应到鼠标事件。鼠标移到B屏时反而没有事件响应了,UGUI的组件都正常响应。
实现逻辑:有2个canvas和2个camera,2个camera分别对应A屏的display1和B屏的display2。
临时解决方案:A屏显示原本B屏的内容,B屏显示原本A屏的内容。
ps:目前定位在BaseChart.cs里CheckPointerPos()方法中,希望在以后的版本支持本提案。
谢谢提供帮助!

雷达图填充色不起作用

ser.areaStyle.show = true;
ser.areaStyle.color = Color.blue;

这样设置的在雷达图中不起作用在折线图中起作用.

請問如何添加一筆空資料到折線圖內?

我在做一個每日記錄體重的圖表,但使用者不一定會每日登記體重
目前代碼如下

 sportChart.AddXAxisData(currDate.ToString("MM/dd"));
            var idx = dataList.FindIndex(x => x.date.ToString("MM/dd") == currDate.ToString("MM/dd"));
            if (idx != -1)
            {
                sportChart.AddData(0, dataList[idx].weight,currDate.ToString("MM/dd"));
                Debug.Log(i);
                
            }

但全部的資料都會往前遞補,請問要如何才能將資料添加到指定的日期裡面?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.