From 1e43fc72831307a9163e47552588294d27c4826f Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Wed, 7 Apr 2021 20:30:40 +0800 Subject: [PATCH] v2.1.0 --- Assets/XCharts/CHANGELOG-EN.md | 4 ++ Assets/XCharts/CHANGELOG.md | 4 ++ Assets/XCharts/Runtime/XChartsMgr.cs | 4 +- Assets/XCharts/package.json | 6 +-- Assets/XCharts/version.json | 6 +-- Doc/screenshot/op_datamore.png | Bin 0 -> 57124 bytes Doc/教程:5分钟上手XCharts.md | 44 ++++++++++++++++++- README.md | 61 ++++++++++++++++----------- 8 files changed, 95 insertions(+), 34 deletions(-) create mode 100644 Doc/screenshot/op_datamore.png 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 @@ namespace XCharts [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 0000000000000000000000000000000000000000..0a3651b41a860493213d4a7d5a6957bf3ce6dd70 GIT binary patch literal 57124 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。以`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` 全局设置组件:可以对一些全局的参数进行调整。一般情况下使用默认值即可,当有需要时可进行调整。 +| | | +| ---| --| +| Theme | 主题组件 | +| Title | 标题组件 | +| Legend | 图例组件 | +| Grid | 网格组件 | +| Axis | 坐标轴组件 | +| Series | 系列组件 | +| Tooltip | 提示框组件 | +| DataZoom | 区域缩放组件 | +| VisualMap | 视觉映射组件 | +| Radar | 雷达组件 | +| Settings | 全局设置组件 | -`XCharts` 支持的图表: +## 图表 -* `LineChart` 折线图:折线图是用折线将各个数据点标志连接起来的图表,用于展现数据的变化趋势。 -* `BarChart` 柱状图:柱状图 通过 柱形的高度/条形的宽度 来表现数据的大小,用于有至少一个类目轴或时间轴的直角坐标系上。 -* `PieChart` 饼图:饼图主要用于表现不同类目的数据在总和中的占比。每个的弧度表示数据数量的比例。饼图更适合表现数据相对于总数的百分比等关系。如果只是表示不同类目数据间的大小,建议使用 柱状图。 -* `RadarChart` 雷达图:雷达图主要用于表现多变量的数据,例如球员的各个属性分析。依赖 radar 组件。 -* `ScatterChart` 散点图:直角坐标系上的散点图可以用来展现数据的 x,y 之间的关系,如果数据项有多个维度,其它维度的值可以通过不同大小的 symbol 展现成气泡图,也可以用颜色来表现。 -* `HeatmapChart` 热力图:热力图主要通过颜色去表现数值的大小,必须要配合 visualMap 组件使用。 -* `GuageChart` 仪表盘。 -* `RingChart` 环形图。区别于`PieChart`中的环形图,`RingChart`只支持一个数据,一般用于表示百分比。 +| | | +| ---| --| +| 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)