diff --git a/Assets/XCharts/CHANGELOG-EN.md b/Assets/XCharts/CHANGELOG-EN.md index 70d5c1e3..87bc63b9 100644 --- a/Assets/XCharts/CHANGELOG-EN.md +++ b/Assets/XCharts/CHANGELOG-EN.md @@ -2,6 +2,7 @@ # 更新日志 [Latest](#Latest) +[v2.1.0](#v2.1.0) [v2.0.1](#v2.0.1) [v2.0.0](#v2.0.0) [v2.0.0-preview.2](#v2.0.0-preview.2) @@ -32,6 +33,9 @@ ## Latest +## v2.1.0 + +* (2021.04.07) Release `v2.1.0` version * (2021.03.31) Optimized and refactor `Theme` to solve problems with the same or missing references #118 * (2021.03.30) Optimized `Tooltip` to support setting different category axis data #129 * (2021.03.29) Optimized the custom draw callback API diff --git a/Assets/XCharts/CHANGELOG.md b/Assets/XCharts/CHANGELOG.md index a9a4c732..e3f0ecd8 100644 --- a/Assets/XCharts/CHANGELOG.md +++ b/Assets/XCharts/CHANGELOG.md @@ -2,6 +2,7 @@ # 更新日志 [Latest](#Latest) +[v2.1.0](#v2.1.0) [v2.0.1](#v2.0.1) [v2.0.0](#v2.0.0) [v2.0.0-preview.2](#v2.0.0-preview.2) @@ -32,6 +33,9 @@ ## Latest +## v2.1.0 + +* (2021.04.07) 发布`v2.1.0`版本 * (2021.03.31) 优化和重构`Theme`,解决引用相同或丢失的问题 #118 * (2021.03.30) 优化`Tooltip`支持设置不同的类目轴数据 #129 * (2021.03.29) 优化自定义绘制回调接口,增加`onCustomDrawBeforeSerie`、`onCustomDrawAfterSerie`和`onCustomDrawTop` diff --git a/Assets/XCharts/Runtime/XChartsMgr.cs b/Assets/XCharts/Runtime/XChartsMgr.cs index 4be55402..861b6a60 100644 --- a/Assets/XCharts/Runtime/XChartsMgr.cs +++ b/Assets/XCharts/Runtime/XChartsMgr.cs @@ -37,8 +37,8 @@ class XChartsVersion [ExecuteInEditMode] public class XChartsMgr : MonoBehaviour { - internal static string _version = "2.0.1"; - internal static int _versionDate = 20210226; + internal static string _version = "2.1.0"; + internal static int _versionDate = 20210407; public static string version { get { return _version; } } public static int versionDate { get { return _versionDate; } } public static string fullVersion { get { return version + "-" + versionDate; } } diff --git a/Assets/XCharts/package.json b/Assets/XCharts/package.json index 0b03e45b..56108889 100644 --- a/Assets/XCharts/package.json +++ b/Assets/XCharts/package.json @@ -1,9 +1,9 @@ { "name": "com.monitor1394.xcharts", "displayName": "XCharts", - "version": "2.0.1", - "date": "20210226", - "checkdate": "20210226", + "version": "2.1.0", + "date": "20210407", + "checkdate": "20210407", "desc": "如果 XCharts 对您有帮助,希望您能在 Github 上点 Star 支持,非常感谢!", "unity": "2018.3", "description": "A charting and data visualization library for Unity.", diff --git a/Assets/XCharts/version.json b/Assets/XCharts/version.json index 4bd0cd6b..3e8fa119 100644 --- a/Assets/XCharts/version.json +++ b/Assets/XCharts/version.json @@ -1,7 +1,7 @@ { - "version": "2.0.1", - "date": "20210226", - "checkdate": "20210226", + "version": "2.1.0", + "date": "20210407", + "checkdate": "20210407", "desc": "如果 XCharts 对您有帮助,希望您能在 Github 上点 Star 支持,非常感谢!", "homepage": "https://github.com/monitor1394/unity-ugui-XCharts" } \ No newline at end of file diff --git a/Doc/screenshot/op_datamore.png b/Doc/screenshot/op_datamore.png new file mode 100644 index 00000000..0a3651b4 Binary files /dev/null and b/Doc/screenshot/op_datamore.png differ diff --git "a/Doc/\346\225\231\347\250\213\357\274\2325\345\210\206\351\222\237\344\270\212\346\211\213XCharts.md" "b/Doc/\346\225\231\347\250\213\357\274\2325\345\210\206\351\222\237\344\270\212\346\211\213XCharts.md" index 1d487dd5..96bdc669 100644 --- "a/Doc/\346\225\231\347\250\213\357\274\2325\345\210\206\351\222\237\344\270\212\346\211\213XCharts.md" +++ "b/Doc/\346\225\231\347\250\213\357\274\2325\345\210\206\351\222\237\344\270\212\346\211\213XCharts.md" @@ -43,10 +43,13 @@ * 首先要理解:`XCharts`是配置参数驱动。想要什么效果,你只需要去调整对应组件下的配置参数就可以,不需要去改`Hierarchy`试图下的节点,因为那些节点是由`XCharts`内部根据配置参数生成的。你改了也会变还原。 - * 快速定位你想要改的效果对应的组件。这就需要对组件有一定的了解。比如我们想要让X轴的轴线末端显示箭头,第一步X轴定位到XAxis0,第二步轴线定位到AxisLine,然后我们再去看AxisLine有没有这样的参数可以实现这个效果。 + * 快速定位你想要改的效果对应的组件。这就需要对组件有一定的了解。比如我们想要让X轴的轴线末端显示箭头,第一步X轴定位到`XAxis0`,第二步轴线定位到`AxisLine`,然后我们再去看`AxisLine`有没有这样的参数可以实现这个效果。 * `XCharts`提供从全局`Theme`、系列`Serie`、单个数据项`SerieData`全方位的参数配置。优先级从大到小为:`SerieData`->`Serie`->`Theme`。以`ItemStyle`的颜色例,如果`SerieData`的`ItemStyle`配置有颜色值,则优先用这个颜色值。判断是否配置有颜色值就是`Color.clear`(颜色的RGBA都是0)。 + * `Serie`的`Data`点`More`按钮后可以单独设置数据项的更多设置,如柱形图的每个柱条单独设置颜色等。 +![op_datamore](screenshot/op_datamore.png) + ## 用代码添加折线图 给`gameObject`挂上`LineChart`脚本,需要调用`SetSize()`接口设置图表尺寸,或者直接操作`chart.rectTransfrom`: @@ -129,6 +132,45 @@ XCharts支持TextMeshPro,但默认是不开启的,需要自己手动切换 ![textmeshpro-font](screenshot/op_textmeshpro3.png) 建议在项目初就规划好是否使用TextMeshPro,在有很多图表的情况下再切换,可能导致某些图表无法正常初始化,这时可能需要每个图表单独的使用`Remove All Chart Object`来清理让图表重新初始化。 +## 用代码改图表参数 + +`Inspector`上看到的所有参数都可以用代码来修改,关键是要定位好你要改的参数是在组件上、还是serie上、还是在具体的数据项上改。 + +1. 改组件上的参数: + +```C# +chart.title.text = "LineChart - 折线图"; +chart.title.subText = "普通折线图"; +chart.yAxis0.minMaxType = Axis.AxisMinMaxType.Custom; +chart.yAxis0.min = 0; +chart.yAxis0.max = 100; +``` + +2. 改Serie的参数: + +```C# +var serie = chart.AddSerie(SerieType.Gauge, "速度"); +serie.min = 0; +serie.max = 220; +serie.startAngle = -125; +serie.endAngle = 125; +serie.center[0] = 0.5f; +serie.center[1] = 0.5f; +serie.radius[0] = 80; +serie.splitNumber = 5; +serie.animation.dataChangeEnable = true; +serie.roundCap = true; +``` + +3. 改数据项上的参数: + +```C# +var serieData = chart.AddData(0, Random.Range(10, 20)); +serieData.enableItemStyle = true; +serieData.itemStyle.color = Color.blue; +} +``` + [返回首页](https://github.com/monitor1394/unity-ugui-XCharts) [XCharts问答](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XCharts问答.md) [XChartsAPI接口](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/Documentation/XChartsAPI.md) diff --git a/README.md b/README.md index 8a991fa1..69fd7d0c 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ * 新增 `TextMeshPro` 的支持。 * 新增 `CandlestickChart` K线图。 * 新增 `GanttChart` 甘特图。 -* __注意:__ `2.0` 版本进行了大量的重构和调整,并不完全兼容 `1.0` 版本,所以`1.0` 版本不宜直接升级 `2.0` 版本,升级后部分参数设置可以被重置为默认值。 +* __注意:__ `2.0` 版本进行了大量的重构和调整,并不完全兼容 `1.0` 版本,所以`1.0` 版本不宜直接升级 `2.0` 版本,升级后部分参数设置可能被重置为默认值。 ## 特性 @@ -96,30 +96,40 @@ XCharts的图表由组件和数据组成。不同的组件和数据可以组合成不同类型的图表。组件分为主组件和子组件,主组件包含子组件。 -`XCharts` 支持的主组件: - -* `Theme` 主题组件:可以配置图表各组件默认的颜色、字体等。 -* `Title` 标题组件:包含主标题和副标题。 -* `Legend` 图例组件:图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。 -* `Grid` 网格组件:直角坐标系内绘图网格。一个网格组件内最多可以放置上下两个 X 轴,左右两个 Y 轴。可以在网格上绘制折线图,柱状图,散点图。 -* `Axis` 坐标轴组件:直角坐标系的坐标轴。支持上下两个 X 轴,左右两个 Y 轴。 -* `Series` 系列组件:系列列表。一个图表可以包含多个不同的系列,每个系列通过 type 决定自己的图表类型。 -* `Tooltip` 提示框组件:反馈当时鼠标所指示数据的更多细节。 -* `DataZoom` 区域缩放组件:用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。 -* `VisualMap` 视觉映射组件:可以对数据进行不同颜色的映射。 -* `Radar` 雷达组件:雷达图坐标系组件,只适用于雷达图。 -* `Settings` 全局设置组件:可以对一些全局的参数进行调整。一般情况下使用默认值即可,当有需要时可进行调整。 - -`XCharts` 支持的图表: - -* `LineChart` 折线图:折线图是用折线将各个数据点标志连接起来的图表,用于展现数据的变化趋势。 -* `BarChart` 柱状图:柱状图 通过 柱形的高度/条形的宽度 来表现数据的大小,用于有至少一个类目轴或时间轴的直角坐标系上。 -* `PieChart` 饼图:饼图主要用于表现不同类目的数据在总和中的占比。每个的弧度表示数据数量的比例。饼图更适合表现数据相对于总数的百分比等关系。如果只是表示不同类目数据间的大小,建议使用 柱状图。 -* `RadarChart` 雷达图:雷达图主要用于表现多变量的数据,例如球员的各个属性分析。依赖 radar 组件。 -* `ScatterChart` 散点图:直角坐标系上的散点图可以用来展现数据的 x,y 之间的关系,如果数据项有多个维度,其它维度的值可以通过不同大小的 symbol 展现成气泡图,也可以用颜色来表现。 -* `HeatmapChart` 热力图:热力图主要通过颜色去表现数值的大小,必须要配合 visualMap 组件使用。 -* `GuageChart` 仪表盘。 -* `RingChart` 环形图。区别于`PieChart`中的环形图,`RingChart`只支持一个数据,一般用于表示百分比。 +## 组件 + +| | | +| ---| --| +| Theme | 主题组件 | +| Title | 标题组件 | +| Legend | 图例组件 | +| Grid | 网格组件 | +| Axis | 坐标轴组件 | +| Series | 系列组件 | +| Tooltip | 提示框组件 | +| DataZoom | 区域缩放组件 | +| VisualMap | 视觉映射组件 | +| Radar | 雷达组件 | +| Settings | 全局设置组件 | + +## 图表 + +| | | +| ---| --| +| LineChart | 这线图 | +| BarChart | 柱状图 | +| PieChart | 饼图 | +| RadarChart | 雷达图 | +| ScatterChart | 散点图 | +| HeatmapChart | 热力图 | +| GuageChart | 仪表盘 | +| RingChart | 环形图 | +| LiquidChart | 水位图 | +| PolarChart | 极坐标图 | +| CandlestickChart | K线图 | +| GanttChart | 甘特图 | + +## 关系 以下是LineChart折线图和主组件、子组件的关系结构: @@ -154,7 +164,7 @@ XCharts的图表由组件和数据组成。不同的组件和数据可以组合 └── Settings ``` -## 开发环境 +## 环境 * Unity2017.4.27f1, .Net 3.5 * macOS 10.15.4 @@ -163,13 +173,14 @@ XCharts的图表由组件和数据组成。不同的组件和数据可以组合 * 本项目在`Unity 2017.4.27f1`和`.Net 3.5`下开发,在 `Unity 5`、`Unity 2018`、`Unity 2019`上测试正常。理论上可运行于任何支持`UGUI`的`Unity`版本。 * 通过下载源码或`unitypackage`包导入到你的项目中。如果你是`2018.3`及以上版本,可通过`Package Manager`的`Git`来导入包: - 1. 打开`Packages`目录下的`manifest.json`文件,在`dependencies`下加入: + 1. 打开`Packages`目录下的`manifest.json`文件,在`dependencies`下加入以下内容(或者通过`Package Manager`的`Add package from git URL...`): ``` json "com.monitor1394.xcharts": "https://github.com/monitor1394/unity-ugui-XCharts.git#2.0-upm", ``` 2. 回到`Unity`,可能会花3到5分钟进行下载和编译,成功后就可以开始使用`XCharts`了。 3. 如果要删除`XCharts`,删除掉1步骤所加的内容即可。 4. 如果要更新`XCharts`,删除`manifest.json`文件的`lock`下的`com.monitor1394.xcharts`相关内容即会从新下载编译。在 `Component -> XCharts -> Upgrade Check`可以检测是否有新版本可更新。 + 5. __注意:__ 通过这种方式导入要求本地先装有`Git`。 * 在Editor上快速创建一个图表: @@ -186,7 +197,7 @@ XCharts的图表由组件和数据组成。不同的组件和数据可以组合 * 更新日志看这里☞ [XCharts更新日志](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/CHANGELOG.md) * 新手教程看这里☞ [教程:5分钟上手XCharts](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Doc/教程:5分钟上手XCharts.md) -## 更新日志 +## 日志 [更新日志](https://github.com/monitor1394/unity-ugui-XCharts/blob/master/Assets/XCharts/CHANGELOG.md)