diff --git a/Documentation~/zh/changelog.md b/Documentation~/zh/changelog.md index 90a155a5..36107da5 100644 --- a/Documentation~/zh/changelog.md +++ b/Documentation~/zh/changelog.md @@ -65,6 +65,9 @@ slug: /changelog ## master +* (2023.02.02) 优化`SerieData`的`ignore`设置时的忽略数据判断 +* (2023.02.01) 修复`XChartsMgr.ContainsChart()`接口异常 +* (2023.01.31) 增加`InputSystem`的支持 (#242) (by Bian-Sh) * (2023.01.11) 修复`Inspector`上移除`Component`后图表没有及时刷新的问题 (#241) * (2023.01.06) 修复`Pie`在最后的几个数据都为0时`Label`显示不正常的问题 (#240) * (2023.01.03) 删除`Serie`的`MarkColor`,增加`ItemStyle`的`MarkColor` diff --git a/Editor/Series/BarEditor.cs b/Editor/Series/BarEditor.cs index 55a1af79..b2521820 100644 --- a/Editor/Series/BarEditor.cs +++ b/Editor/Series/BarEditor.cs @@ -48,7 +48,6 @@ namespace XCharts.Editor PropertyField("m_Large"); PropertyField("m_LargeThreshold"); PropertyField("m_PlaceHolder"); - PropertyField("m_MarkColor"); }); PropertyField("m_ItemStyle"); PropertyField("m_Animation"); diff --git a/Editor/Series/LineEditor.cs b/Editor/Series/LineEditor.cs index 91f6fe62..95b2e67c 100644 --- a/Editor/Series/LineEditor.cs +++ b/Editor/Series/LineEditor.cs @@ -37,7 +37,6 @@ namespace XCharts.Editor PropertyField("m_ShowAsPositiveNumber"); PropertyField("m_Large"); PropertyField("m_LargeThreshold"); - PropertyField("m_MarkColor"); }); PropertyField("m_Symbol"); PropertyField("m_LineStyle"); diff --git a/Runtime/Serie/Serie.cs b/Runtime/Serie/Serie.cs index 59f9a359..1f0e47ce 100644 --- a/Runtime/Serie/Serie.cs +++ b/Runtime/Serie/Serie.cs @@ -371,7 +371,7 @@ namespace XCharts.Runtime public SerieColorBy colorBy { //get { return m_ColorBy; } - get { return m_ColorBy == SerieColorBy.Default?defaultColorBy : m_ColorBy; } + get { return m_ColorBy == SerieColorBy.Default ? defaultColorBy : m_ColorBy; } set { if (PropertyUtil.SetStruct(ref m_ColorBy, value)) { SetAllDirty(); } } } /// @@ -1061,7 +1061,7 @@ namespace XCharts.Runtime var max = double.MinValue; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] > max) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[1]) && sdata.data[1] > max) { max = sdata.data[1]; } @@ -1080,7 +1080,7 @@ namespace XCharts.Runtime var max = double.MinValue; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] > max) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[0]) && sdata.data[0] > max) { max = sdata.data[0]; } @@ -1099,7 +1099,7 @@ namespace XCharts.Runtime var min = double.MaxValue; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] < min) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[1]) && sdata.data[1] < min) { min = sdata.data[1]; } @@ -1118,7 +1118,7 @@ namespace XCharts.Runtime var min = double.MaxValue; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] < min) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[0]) && sdata.data[0] < min) { min = sdata.data[0]; } @@ -1139,7 +1139,7 @@ namespace XCharts.Runtime { foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[1])) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[1])) total += sdata.data[1]; } } @@ -1149,7 +1149,7 @@ namespace XCharts.Runtime var unscaledTime = animation.unscaledTime; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[1])) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[1])) total += sdata.GetCurrData(1, duration, unscaledTime); } } @@ -1167,7 +1167,7 @@ namespace XCharts.Runtime double total = 0; foreach (var sdata in data) { - if (sdata.show && !IsIgnoreValue(sdata.data[1])) + if (sdata.show && !IsIgnoreValue(sdata, sdata.data[1])) total += sdata.data[0]; } return total; @@ -1780,7 +1780,7 @@ namespace XCharts.Runtime public bool IsIgnoreValue(SerieData serieData, int dimension = 1) { - return serieData.ignore || IsIgnoreValue(serieData.GetData(dimension)); + return IsIgnoreValue(serieData, serieData.GetData(dimension)); } public bool IsIgnoreValue(double value) @@ -1788,6 +1788,11 @@ namespace XCharts.Runtime return m_Ignore && MathUtil.Approximately(value, m_IgnoreValue); } + public bool IsIgnoreValue(SerieData serieData, double value) + { + return serieData.ignore || IsIgnoreValue(value); + } + public bool IsIgnorePoint(int index) { if (index >= 0 && index < dataCount) diff --git a/Runtime/Serie/SerieHelper.cs b/Runtime/Serie/SerieHelper.cs index 674c6cad..aae27558 100644 --- a/Runtime/Serie/SerieHelper.cs +++ b/Runtime/Serie/SerieHelper.cs @@ -17,7 +17,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (value < min && !serie.IsIgnoreValue(value)) min = value; + if (value < min && !serie.IsIgnoreValue(serieData, value)) min = value; } } return min == double.MaxValue ? 0 : min; @@ -33,7 +33,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (value < min && !serie.IsIgnoreValue(value)) + if (value < min && !serie.IsIgnoreValue(serieData, value)) { min = value; minData = serieData; @@ -52,7 +52,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (value > max && !serie.IsIgnoreValue(value)) max = value; + if (value > max && !serie.IsIgnoreValue(serieData, value)) max = value; } } return max == double.MinValue ? 0 : max; @@ -68,7 +68,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (value > max && !serie.IsIgnoreValue(value)) + if (value > max && !serie.IsIgnoreValue(serieData, value)) { max = value; maxData = serieData; @@ -88,7 +88,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (!serie.IsIgnoreValue(value)) + if (!serie.IsIgnoreValue(serieData, value)) total += value; } } @@ -106,7 +106,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (!serie.IsIgnoreValue(value)) + if (!serie.IsIgnoreValue(serieData, value)) s_TempList.Add(value); } } @@ -137,7 +137,7 @@ namespace XCharts.Runtime if (serieData.show && serieData.data.Count > dimension) { var value = serieData.data[dimension]; - if (!serie.IsIgnoreValue(value)) + if (!serie.IsIgnoreValue(serieData, value)) { if (value > max) max = value; if (value < min) min = value; @@ -177,7 +177,7 @@ namespace XCharts.Runtime for (int j = 0; j < count; j++) { var value = serieData.data[j]; - if (!serie.IsIgnoreValue(value)) + if (!serie.IsIgnoreValue(serieData, value)) { if (value > max) max = value; if (value < min) min = value; @@ -268,7 +268,7 @@ namespace XCharts.Runtime { if (serieData == null) return GetSerieState(serie); if (serieData.context.highlight) return SerieState.Emphasis; - if (serieData.state == SerieState.Auto) return defaultSerieState?serie.state : GetSerieState(serie); + if (serieData.state == SerieState.Auto) return defaultSerieState ? serie.state : GetSerieState(serie); return serieData.state; } @@ -292,7 +292,7 @@ namespace XCharts.Runtime public static void GetItemColor(out Color32 color, out Color32 toColor, Serie serie, SerieData serieData, ThemeStyle theme, SerieState state = SerieState.Auto) { - var colorIndex = serieData != null && serie.colorByData? serieData.index : serie.context.colorIndex; + var colorIndex = serieData != null && serie.colorByData ? serieData.index : serie.context.colorIndex; GetItemColor(out color, out toColor, serie, serieData, theme, colorIndex, state, true); } @@ -438,7 +438,7 @@ namespace XCharts.Runtime if (state == SerieState.Auto) state = GetSerieState(serie, serieData); if (state == SerieState.Normal) { - return serieData != null && serieData.itemStyle != null? serieData.itemStyle : serie.itemStyle; + return serieData != null && serieData.itemStyle != null ? serieData.itemStyle : serie.itemStyle; } else { @@ -452,7 +452,7 @@ namespace XCharts.Runtime if (state == SerieState.Auto) state = GetSerieState(serie, serieData); if (state == SerieState.Normal) { - return serieData != null && serieData.labelStyle != null? serieData.labelStyle : serie.label; + return serieData != null && serieData.labelStyle != null ? serieData.labelStyle : serie.label; } else { @@ -466,7 +466,7 @@ namespace XCharts.Runtime if (state == SerieState.Auto) state = GetSerieState(serie, serieData); if (state == SerieState.Normal) { - return serieData != null && serieData.labelLine != null? serieData.labelLine : serie.labelLine; + return serieData != null && serieData.labelLine != null ? serieData.labelLine : serie.labelLine; } else { @@ -480,7 +480,7 @@ namespace XCharts.Runtime if (state == SerieState.Auto) state = GetSerieState(serie, serieData); if (state == SerieState.Normal) { - return serieData != null && serieData.symbol != null? serieData.symbol : serie.symbol; + return serieData != null && serieData.symbol != null ? serieData.symbol : serie.symbol; } else { @@ -682,7 +682,7 @@ namespace XCharts.Runtime if (stateStyle == null) { var symbol = GetSerieSymbol(serie, serieData, SerieState.Normal); - size = symbol.GetSize(serieData == null? null : serieData.data, defaultSize); + size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); switch (state) { case SerieState.Emphasis: @@ -696,7 +696,7 @@ namespace XCharts.Runtime else { var symbol = stateStyle.symbol; - size = symbol.GetSize(serieData == null? null : serieData.data, defaultSize); + size = symbol.GetSize(serieData == null ? null : serieData.data, defaultSize); } return size; } @@ -895,7 +895,7 @@ namespace XCharts.Runtime switch (serie.dataSortType) { case SerieDataSortType.Ascending: - serie.context.sortedData.Sort(delegate(SerieData data1, SerieData data2) + serie.context.sortedData.Sort(delegate (SerieData data1, SerieData data2) { var value1 = data1.GetData(1); var value2 = data2.GetData(1); @@ -905,7 +905,7 @@ namespace XCharts.Runtime }); break; case SerieDataSortType.Descending: - serie.context.sortedData.Sort(delegate(SerieData data1, SerieData data2) + serie.context.sortedData.Sort(delegate (SerieData data1, SerieData data2) { var value1 = data1.GetData(1); var value2 = data2.GetData(1); diff --git a/Runtime/Serie/SeriesHelper.cs b/Runtime/Serie/SeriesHelper.cs index 980f4fd4..85717ee3 100644 --- a/Runtime/Serie/SeriesHelper.cs +++ b/Runtime/Serie/SeriesHelper.cs @@ -346,7 +346,7 @@ namespace XCharts.Runtime if ((isPolar && serie.polarIndex != axisIndex) || (!isPolar && serie.yAxisIndex != axisIndex) || !serie.show) continue; - var updateDuration = serie.animation.enable?serie.animation.dataChangeDuration : 0; + var updateDuration = serie.animation.enable ? serie.animation.dataChangeDuration : 0; var unscaledTime = serie.animation.unscaledTime; if (isPercentStack && SeriesHelper.IsPercentStack(series, serie.serieName)) { @@ -355,7 +355,7 @@ namespace XCharts.Runtime } else { - var showData = serie.GetDataList(filterByDataZoom?chart.GetXDataZoomOfSerie(serie) : null); + var showData = serie.GetDataList(filterByDataZoom ? chart.GetXDataZoomOfSerie(serie) : null); if (serie is Candlestick || serie is SimplifiedCandlestick) { foreach (var data in showData) @@ -371,9 +371,9 @@ namespace XCharts.Runtime var performanceMode = serie.IsPerformanceMode(); foreach (var data in showData) { - var currData = performanceMode? data.GetData(yValue?1 : 0, inverse): + var currData = performanceMode ? data.GetData(yValue ? 1 : 0, inverse) : data.GetCurrData(yValue ? 1 : 0, updateDuration, unscaledTime, inverse); - if (!serie.IsIgnoreValue(currData)) + if (!serie.IsIgnoreValue(data, currData)) { if (currData > max) max = currData; if (currData < min) min = currData; @@ -395,7 +395,7 @@ namespace XCharts.Runtime if ((isPolar && serie.polarIndex != axisIndex) || (!isPolar && serie.yAxisIndex != axisIndex) || !serie.show) continue; - var showData = serie.GetDataList(filterByDataZoom?chart.GetXDataZoomOfSerie(serie) : null); + var showData = serie.GetDataList(filterByDataZoom ? chart.GetXDataZoomOfSerie(serie) : null); if (SeriesHelper.IsPercentStack(series, serie.stack)) { for (int j = 0; j < showData.Count; j++) @@ -419,7 +419,7 @@ namespace XCharts.Runtime currData = yValue ? showData[j].GetData(1) : showData[j].GetData(0); } if (inverse) currData = -currData; - if (!serie.IsIgnoreValue(currData)) + if (!serie.IsIgnoreValue(showData[j], currData)) _serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + currData; } }