From bdb171c4e64162af8555fbeb0f1c292a3b25dba6 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Sun, 30 Oct 2022 20:56:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0API:AddData(),ClearSerieData(?= =?UTF-8?q?),ClearComponentData()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 +++ Documentation/XChartsAPI-EN.md | 4 +++ Documentation/XChartsAPI-ZH.md | 4 +++ Runtime/Internal/BaseChart.API.cs | 22 ++++++++++++++++ Runtime/Internal/BaseChart.Serie.cs | 40 +++++++++++++++++++++++++++++ Runtime/Serie/Serie.cs | 34 ++++++++++++++++++++++++ 6 files changed, 108 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c5a4c13e..c21bea3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ # 更新日志 [master](#master) +[v3.4.0](#v3.4.0) [v3.3.0](#v3.3.0) [v3.2.0](#v3.2.0) [v3.1.0](#v3.1.0) @@ -59,6 +60,9 @@ ## master +## v3.4.0 + +* (2022.10.30) 增加`API`:`AddData()`、`ClearSerieData()`、`ClearComponentData()` * (2022.10.30) 增加`Axis`的`indicatorLabel`,移除`Tooltip`的`indicatorLabelStyle` (#226) * (2022.10.29) 增加`Serie`的`markColor`可设置标识颜色用于`Legend`和`Tooltip`的展示 (#229) * (2022.10.26) 增加`RadarCoord`的`startAngle`可设置`Radar`起始角度 diff --git a/Documentation/XChartsAPI-EN.md b/Documentation/XChartsAPI-EN.md index 69173ea6..0b43fd73 100644 --- a/Documentation/XChartsAPI-EN.md +++ b/Documentation/XChartsAPI-EN.md @@ -159,11 +159,13 @@ Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver | AddData() |public SerieData AddData(int serieIndex, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)| | AddData() |public SerieData AddData(int serieIndex, double xValue, double yValue, string dataName = null, string dataId = null)
Add a (x,y) data to serie. | | AddData() |public SerieData AddData(int serieIndex, List<double> multidimensionalData, string dataName = null, string dataId = null)
Add an arbitray dimension data to serie,such as (x,y,z,...). | +| AddData() |public SerieData AddData(int serieIndex, params double[] multidimensionalData)
Add an arbitray dimension data to serie,such as (x,y,z,...). | | AddData() |public SerieData AddData(string serieName, DateTime time, double yValue, string dataName = null, string dataId = null)
Add a (time,y) data to serie. | | AddData() |public SerieData AddData(string serieName, double data, string dataName = null, string dataId = null)
Add a data to serie. | | AddData() |public SerieData AddData(string serieName, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)| | AddData() |public SerieData AddData(string serieName, double xValue, double yValue, string dataName = null, string dataId = null)
Add a (x,y) data to serie. | | AddData() |public SerieData AddData(string serieName, List<double> multidimensionalData, string dataName = null, string dataId = null)
Add an arbitray dimension data to serie,such as (x,y,z,...). | +| AddData() |public SerieData AddData(string serieName, params double[] multidimensionalData)
Add an arbitray dimension data to serie,such as (x,y,z,...). | | AddSerie<T>() |public T AddSerie<T>(string serieName = null, bool show = true, bool addToHead = false) where T : Serie| | AddXAxisData() |public void AddXAxisData(string category, int xAxisIndex = 0)
Add a category data to xAxis. | | AddXAxisIcon() |public void AddXAxisIcon(Sprite icon, int xAxisIndex = 0)
Add an icon to xAxis. | @@ -181,7 +183,9 @@ Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver | CanMultipleComponent() |public bool CanMultipleComponent(Type type)| | ClampInChart() |public void ClampInChart(ref Vector3 pos)| | ClampInGrid() |public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)| +| ClearComponentData() |public virtual void ClearComponentData()
Clear the data of all components. | | ClearData() |public virtual void ClearData()
Clear all components and series data. Note: serie only empties the data and does not remove serie. | +| ClearSerieData() |public virtual void ClearSerieData()
Clear the data of all series. | | ClickLegendButton() |public void ClickLegendButton(int legendIndex, string legendName, bool show)
点击图例按钮 | | CovertSerie() |public bool CovertSerie(Serie serie, Type type)| | CovertSerie<T>() |public bool CovertSerie<T>(Serie serie) where T : Serie| diff --git a/Documentation/XChartsAPI-ZH.md b/Documentation/XChartsAPI-ZH.md index 0843044c..99293a79 100644 --- a/Documentation/XChartsAPI-ZH.md +++ b/Documentation/XChartsAPI-ZH.md @@ -159,11 +159,13 @@ Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver | AddData() |public SerieData AddData(int serieIndex, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)| | AddData() |public SerieData AddData(int serieIndex, double xValue, double yValue, string dataName = null, string dataId = null)
添加(x,y)数据到指定系列中。 | | AddData() |public SerieData AddData(int serieIndex, List<double> multidimensionalData, string dataName = null, string dataId = null)
添加多维数据(x,y,z...)到指定的系列中。 | +| AddData() |public SerieData AddData(int serieIndex, params double[] multidimensionalData)
添加多维数据(x,y,z...)到指定的系列中。 | | AddData() |public SerieData AddData(string serieName, DateTime time, double yValue, string dataName = null, string dataId = null)
添加(time,y)数据到指定的系列中。 | | AddData() |public SerieData AddData(string serieName, double data, string dataName = null, string dataId = null)
If serieName doesn't exist in legend,will be add to legend. | | AddData() |public SerieData AddData(string serieName, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)| | AddData() |public SerieData AddData(string serieName, double xValue, double yValue, string dataName = null, string dataId = null)
添加(x,y)数据到指定系列中。 | | AddData() |public SerieData AddData(string serieName, List<double> multidimensionalData, string dataName = null, string dataId = null)
添加多维数据(x,y,z...)到指定的系列中。 | +| AddData() |public SerieData AddData(string serieName, params double[] multidimensionalData)
添加多维数据(x,y,z...)到指定的系列中。 | | AddSerie<T>() |public T AddSerie<T>(string serieName = null, bool show = true, bool addToHead = false) where T : Serie| | AddXAxisData() |public void AddXAxisData(string category, int xAxisIndex = 0)
添加一个类目数据到指定的x轴。 | | AddXAxisIcon() |public void AddXAxisIcon(Sprite icon, int xAxisIndex = 0)
添加一个图标到指定的x轴。 | @@ -181,7 +183,9 @@ Inherits or Implemented: [BaseGraph](#BaseGraph),[ISerializationCallbackReceiver | CanMultipleComponent() |public bool CanMultipleComponent(Type type)| | ClampInChart() |public void ClampInChart(ref Vector3 pos)| | ClampInGrid() |public Vector3 ClampInGrid(GridCoord grid, Vector3 pos)| +| ClearComponentData() |public virtual void ClearComponentData()
清空所有组件的数据。 | | ClearData() |public virtual void ClearData()
清空所有组件和Serie的数据。注意:Serie只是清空数据,不会移除Serie。 | +| ClearSerieData() |public virtual void ClearSerieData()
清空所有serie的数据。 | | ClickLegendButton() |public void ClickLegendButton(int legendIndex, string legendName, bool show)
点击图例按钮 | | CovertSerie() |public bool CovertSerie(Serie serie, Type type)| | CovertSerie<T>() |public bool CovertSerie<T>(Serie serie) where T : Serie| diff --git a/Runtime/Internal/BaseChart.API.cs b/Runtime/Internal/BaseChart.API.cs index 7c1d6996..5a3330ee 100644 --- a/Runtime/Internal/BaseChart.API.cs +++ b/Runtime/Internal/BaseChart.API.cs @@ -187,9 +187,31 @@ namespace XCharts.Runtime /// |清空所有组件和Serie的数据。注意:Serie只是清空数据,不会移除Serie。 /// public virtual void ClearData() + { + ClearSerieData(); + ClearComponentData(); + } + + [Since("v3.4.0")] + /// + /// Clear the data of all series. + /// |清空所有serie的数据。 + /// + public virtual void ClearSerieData() { foreach (var serie in m_Series) serie.ClearData(); + m_CheckAnimation = false; + RefreshChart(); + } + + [Since("v3.4.0")] + /// + /// Clear the data of all components. + /// |清空所有组件的数据。 + /// + public virtual void ClearComponentData() + { foreach (var component in m_Components) component.ClearData(); m_CheckAnimation = false; diff --git a/Runtime/Internal/BaseChart.Serie.cs b/Runtime/Internal/BaseChart.Serie.cs index 48f753ce..7e0f3701 100644 --- a/Runtime/Internal/BaseChart.Serie.cs +++ b/Runtime/Internal/BaseChart.Serie.cs @@ -304,6 +304,46 @@ namespace XCharts.Runtime return null; } + [Since("v3.4.0")] + /// + /// Add an arbitray dimension data to serie,such as (x,y,z,...). + /// |添加多维数据(x,y,z...)到指定的系列中。 + /// + /// the index of serie + /// the (x,y,z,...) data + /// + public SerieData AddData(int serieIndex, params double[] multidimensionalData) + { + var serie = GetSerie(serieIndex); + if (serie != null) + { + var serieData = serie.AddData(multidimensionalData); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + + [Since("v3.4.0")] + /// + /// Add an arbitray dimension data to serie,such as (x,y,z,...). + /// |添加多维数据(x,y,z...)到指定的系列中。 + /// + /// the name of serie + /// the (x,y,z,...) data + /// + public SerieData AddData(string serieName, params double[] multidimensionalData) + { + var serie = GetSerie(serieName); + if (serie != null) + { + var serieData = serie.AddData(multidimensionalData); + RefreshPainter(serie.painter); + return serieData; + } + return null; + } + /// /// Add a (x,y) data to serie. /// |添加(x,y)数据到指定系列中。 diff --git a/Runtime/Serie/Serie.cs b/Runtime/Serie/Serie.cs index a7be10ad..478bd67e 100644 --- a/Runtime/Serie/Serie.cs +++ b/Runtime/Serie/Serie.cs @@ -1373,6 +1373,40 @@ namespace XCharts.Runtime } } + /// + /// 添加任意维数据到系列中。 + /// + /// 任意维数据 + /// + public SerieData AddData(params double[] values) + { + if (values == null || values.Length == 0) return null; + string dataName = null; + string dataId = null; + if (values.Length == 1) + return AddYData(values[0], dataName, dataId); + else if (values.Length == 2) + return AddXYData(values[0], values[1], dataName, dataId); + else + { + CheckMaxCache(); + m_ShowDataDimension = values.Length; + var serieData = SerieDataPool.Get(); + serieData.name = dataName; + serieData.index = m_Data.Count; + serieData.id = dataId; + for (int i = 0; i < values.Length; i++) + { + serieData.data.Add(values[i]); + } + AddSerieData(serieData); + SetVerticesDirty(); + CheckDataName(dataName); + labelDirty = true; + return serieData; + } + } + public SerieData AddChildData(SerieData parent, double value, string name, string id) { var serieData = new SerieData();