mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 08:50:10 +00:00
优化SerieData的ignore设置时的忽略数据判断
This commit is contained in:
@@ -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`
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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(); } }
|
||||
}
|
||||
/// <summary>
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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<Bar>(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<Bar>(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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user