修复Serie开启ignore时被忽略的数据还会参与计算的问题 (#161)

This commit is contained in:
monitor1394
2021-07-29 08:27:23 +08:00
parent f85f96a560
commit 3316fce8a5
5 changed files with 51 additions and 40 deletions

View File

@@ -39,6 +39,7 @@
## master ## master
* (2021.07.29) Fixed ignored data will also participate in calculations when `ignore` is enabled (#161)
* (2021.07.29) Improved `BarChart`'s `Zebra` gradient support * (2021.07.29) Improved `BarChart`'s `Zebra` gradient support
* (2021.07.26) Fixed issue where `XCharts` path could not be found when `TextMeshPro Enable` (#160) * (2021.07.26) Fixed issue where `XCharts` path could not be found when `TextMeshPro Enable` (#160)

View File

@@ -39,6 +39,7 @@
## master ## master
* (2021.07.29) 修复`Serie`开启`ignore`时被忽略的数据还会参与计算的问题 (#161)
* (2021.07.29) 完善`BarChart``Zebra`斑马柱图渐变支持 * (2021.07.29) 完善`BarChart``Zebra`斑马柱图渐变支持
* (2021.07.26) 修复`TextMeshPro Enable`时找不到`XCharts`路径的问题 (#160) * (2021.07.26) 修复`TextMeshPro Enable`时找不到`XCharts`路径的问题 (#160)

View File

@@ -1245,7 +1245,7 @@ namespace XCharts
var max = double.MinValue; var max = double.MinValue;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show && sdata.data[1] > max) if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] > max)
{ {
max = sdata.data[1]; max = sdata.data[1];
} }
@@ -1264,7 +1264,7 @@ namespace XCharts
var max = double.MinValue; var max = double.MinValue;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show && sdata.data[0] > max) if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] > max)
{ {
max = sdata.data[0]; max = sdata.data[0];
} }
@@ -1283,7 +1283,7 @@ namespace XCharts
var min = double.MaxValue; var min = double.MaxValue;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show && sdata.data[1] < min) if (sdata.show && !IsIgnoreValue(sdata.data[1]) && sdata.data[1] < min)
{ {
min = sdata.data[1]; min = sdata.data[1];
} }
@@ -1302,7 +1302,7 @@ namespace XCharts
var min = double.MaxValue; var min = double.MaxValue;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show && sdata.data[0] < min) if (sdata.show && !IsIgnoreValue(sdata.data[0]) && sdata.data[0] < min)
{ {
min = sdata.data[0]; min = sdata.data[0];
} }
@@ -1321,9 +1321,8 @@ namespace XCharts
double total = 0; double total = 0;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show) if (sdata.show && !IsIgnoreValue(sdata.data[1]))
total += sdata.GetCurrData(1, animation.GetUpdateAnimationDuration()); total += sdata.GetCurrData(1, animation.GetUpdateAnimationDuration());
//total += sdata.GetData(1);
} }
return total; return total;
} }
@@ -1339,7 +1338,7 @@ namespace XCharts
double total = 0; double total = 0;
foreach (var sdata in data) foreach (var sdata in data)
{ {
if (sdata.show) if (sdata.show && !IsIgnoreValue(sdata.data[1]))
total += sdata.data[0]; total += sdata.data[0];
} }
return total; return total;

View File

@@ -23,7 +23,7 @@ namespace XCharts
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
var value = serieData.data[dimension]; var value = serieData.data[dimension];
if (value < min) min = value; if (value < min && !serie.IsIgnoreValue(value)) min = value;
} }
} }
return min == double.MaxValue ? 0 : min; return min == double.MaxValue ? 0 : min;
@@ -39,7 +39,7 @@ namespace XCharts
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
var value = serieData.data[dimension]; var value = serieData.data[dimension];
if (value < min) if (value < min && !serie.IsIgnoreValue(value))
{ {
min = value; min = value;
minData = serieData; minData = serieData;
@@ -58,7 +58,7 @@ namespace XCharts
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
var value = serieData.data[dimension]; var value = serieData.data[dimension];
if (value > max) max = value; if (value > max && !serie.IsIgnoreValue(value)) max = value;
} }
} }
return max == double.MinValue ? 0 : max; return max == double.MinValue ? 0 : max;
@@ -74,7 +74,7 @@ namespace XCharts
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
var value = serieData.data[dimension]; var value = serieData.data[dimension];
if (value > max) if (value > max && !serie.IsIgnoreValue(value))
{ {
max = value; max = value;
maxData = serieData; maxData = serieData;
@@ -93,7 +93,9 @@ namespace XCharts
var serieData = dataList[i]; var serieData = dataList[i];
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
total += serieData.data[dimension]; var value = serieData.data[dimension];
if (!serie.IsIgnoreValue(value))
total += value;
} }
} }
return total != 0 ? total / dataList.Count : 0; return total != 0 ? total / dataList.Count : 0;
@@ -109,7 +111,9 @@ namespace XCharts
var serieData = dataList[i]; var serieData = dataList[i];
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
s_TempList.Add(serieData.data[dimension]); var value = serieData.data[dimension];
if (!serie.IsIgnoreValue(value))
s_TempList.Add(value);
} }
} }
s_TempList.Sort(); s_TempList.Sort();
@@ -139,8 +143,11 @@ namespace XCharts
if (serieData.show && serieData.data.Count > dimension) if (serieData.show && serieData.data.Count > dimension)
{ {
var value = serieData.data[dimension]; var value = serieData.data[dimension];
if (value > max) max = value; if (!serie.IsIgnoreValue(value))
if (value < min) min = value; {
if (value > max) max = value;
if (value < min) min = value;
}
} }
} }
} }
@@ -171,8 +178,11 @@ namespace XCharts
for (int j = 0; j < count; j++) for (int j = 0; j < count; j++)
{ {
var value = serieData.data[j]; var value = serieData.data[j];
if (value > max) max = value; if (!serie.IsIgnoreValue(value))
if (value < min) min = value; {
if (value > max) max = value;
if (value < min) min = value;
}
} }
} }
} }
@@ -421,7 +431,7 @@ namespace XCharts
public static IconStyle GetIconStyle(Serie serie, SerieData serieData) public static IconStyle GetIconStyle(Serie serie, SerieData serieData)
{ {
if(serieData.enableIconStyle) return serieData.iconStyle; if (serieData.enableIconStyle) return serieData.iconStyle;
else return serie.iconStyle; else return serie.iconStyle;
} }
@@ -690,7 +700,6 @@ namespace XCharts
}); });
break; break;
case SerieDataSortType.None: case SerieDataSortType.None:
break; break;
} }
} }

View File

@@ -444,28 +444,29 @@ namespace XCharts
var serie = series.GetSerie(i); var serie = series.GetSerie(i);
if ((isPolar && serie.polarIndex != axisIndex) if ((isPolar && serie.polarIndex != axisIndex)
|| (!isPolar && serie.yAxisIndex != axisIndex)) continue; || (!isPolar && serie.yAxisIndex != axisIndex)) continue;
if (series.IsActive(i)) if (isPercentStack && SeriesHelper.IsPercentStack(series, serie.name, SerieType.Bar))
{ {
if (isPercentStack && SeriesHelper.IsPercentStack(series, serie.name, SerieType.Bar)) if (100 > max) max = 100;
if (0 < min) min = 0;
}
else
{
var showData = serie.GetDataList(dataZoom);
foreach (var data in showData)
{ {
if (100 > max) max = 100;
if (0 < min) min = 0; if (serie.type == SerieType.Candlestick)
}
else
{
var showData = serie.GetDataList(dataZoom);
foreach (var data in showData)
{ {
if (serie.type == SerieType.Candlestick) var dataMin = data.GetMinData(inverse);
var dataMax = data.GetMaxData(inverse);
if (dataMax > max) max = dataMax;
if (dataMin < min) min = dataMin;
}
else
{
var currData = data.GetData(yValue ? 1 : 0, inverse);
if (!serie.IsIgnoreValue(currData))
{ {
var dataMin = data.GetMinData(inverse);
var dataMax = data.GetMaxData(inverse);
if (dataMax > max) max = dataMax;
if (dataMin < min) min = dataMin;
}
else
{
var currData = data.GetData(yValue ? 1 : 0, inverse);
if (currData > max) max = currData; if (currData > max) max = currData;
if (currData < min) min = currData; if (currData < min) min = currData;
} }
@@ -484,8 +485,7 @@ namespace XCharts
{ {
var serie = ss.Value[i]; var serie = ss.Value[i];
if ((isPolar && serie.polarIndex != axisIndex) if ((isPolar && serie.polarIndex != axisIndex)
|| (!isPolar && serie.yAxisIndex != axisIndex) || (!isPolar && serie.yAxisIndex != axisIndex)) continue;
|| !series.IsActive(i)) continue;
var showData = serie.GetDataList(dataZoom); var showData = serie.GetDataList(dataZoom);
if (SeriesHelper.IsPercentStack(series, serie.stack, SerieType.Bar)) if (SeriesHelper.IsPercentStack(series, serie.stack, SerieType.Bar))
{ {
@@ -510,7 +510,8 @@ namespace XCharts
currData = yValue ? showData[j].GetData(1) : showData[j].GetData(0); currData = yValue ? showData[j].GetData(1) : showData[j].GetData(0);
} }
if (inverse) currData = -currData; if (inverse) currData = -currData;
_serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + currData; if(!serie.IsIgnoreValue(currData))
_serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + currData;
} }
} }
} }