增加SerieDataignore可忽略当前数据项

This commit is contained in:
monitor1394
2021-04-28 19:28:05 +08:00
parent 6eae4c7533
commit 054387c71c
11 changed files with 34 additions and 18 deletions

View File

@@ -1704,19 +1704,22 @@ namespace XCharts
}
}
public bool IsIgnoreIndex(int index, int dimension)
public bool IsIgnoreIndex(int index, int dimension = 1)
{
if (m_Ignore)
var serieData = GetSerieData(index);
if (serieData != null)
{
var serieData = GetSerieData(index);
if (serieData != null)
{
return IsIgnoreValue(serieData.GetData(dimension));
}
return IsIgnoreValue(serieData, dimension);
}
return false;
}
public bool IsIgnoreValue(SerieData serieData, int dimension = 1)
{
if (serieData.ignore) return true;
return IsIgnoreValue(serieData.GetData(dimension));
}
public bool IsIgnoreValue(float value)
{
return m_Ignore && Mathf.Approximately(value, m_IgnoreValue);

View File

@@ -19,6 +19,7 @@ namespace XCharts
{
[SerializeField] private string m_Name;
[SerializeField] private bool m_Selected;
[SerializeField] private bool m_Ignore = false;
[SerializeField] private float m_Radius;
[SerializeField] private IconStyle m_IconStyle = new IconStyle();
[SerializeField] private bool m_EnableLabel = false;
@@ -94,6 +95,14 @@ namespace XCharts
/// </summary>
public SerieSymbol symbol { get { return m_Symbol; } set { m_Symbol = value; } }
/// <summary>
/// 是否忽略数据。当为 true 时,数据不进行绘制。
/// </summary>
public bool ignore
{
get { return m_Ignore; }
set { if (PropertyUtil.SetStruct(ref m_Ignore, value)) SetVerticesDirty(); }
}
/// <summary>
/// An arbitrary dimension data list of data item.
/// 可指定任意维数的数值列表。
/// </summary>

View File

@@ -85,7 +85,7 @@ namespace XCharts
public static bool CanShowLabel(Serie serie, SerieData serieData, SerieLabel label, int dimesion)
{
return serie.show && serieData.canShowLabel && !serie.IsIgnoreValue(serieData.GetData(dimesion));
return serie.show && serieData.canShowLabel && !serie.IsIgnoreValue(serieData, dimesion);
}
public static string GetFormatterContent(Serie serie, SerieData serieData,

View File

@@ -102,7 +102,7 @@ namespace XCharts
case SerieType.Ring:
for (int i = 0; i < serie.data.Count; i++)
{
if (serie.type == SerieType.Pie && serie.IsIgnoreValue(serie.data[i].GetData(1))) continue;
if (serie.type == SerieType.Pie && serie.IsIgnoreValue(serie.data[i])) continue;
if (string.IsNullOrEmpty(serie.data[i].name))
serieNameList.Add(ChartCached.IntToStr(i));
else if (!serieNameList.Contains(serie.data[i].name))

View File

@@ -1684,7 +1684,7 @@ namespace XCharts
var pos = serie.dataPoints[j];
var serieLabel = SerieHelper.GetSerieLabel(serie, serieData);
var dimension = 1;
var isIgnore = serie.IsIgnoreIndex(j, 1);
var isIgnore = serie.IsIgnoreIndex(j);
serieData.labelObject.SetPosition(serieData.labelPosition);
serieData.labelObject.UpdateIcon(serieData.iconStyle);
if (serie.show && serieLabel.show && serieData.canShowLabel && !isIgnore)

View File

@@ -49,7 +49,7 @@ namespace XCharts
for (int i = serie.minShow; i < maxCount; i++)
{
var serieData = showData[i];
if (serie.IsIgnoreValue(serieData.GetData(1)))
if (serie.IsIgnoreValue(serieData))
{
serie.dataPoints.Add(Vector3.zero);
continue;
@@ -185,7 +185,7 @@ namespace XCharts
for (int i = serie.minShow; i < maxCount; i++)
{
var serieData = showData[i];
if (serie.IsIgnoreValue(serieData.GetData(1)))
if (serie.IsIgnoreValue(serieData))
{
serie.dataPoints.Add(Vector3.zero);
continue;

View File

@@ -37,7 +37,7 @@ namespace XCharts
for (int i = serie.minShow; i < maxCount; i++)
{
var serieData = showData[i];
if (serie.IsIgnoreValue(serieData.GetData(1)))
if (serie.IsIgnoreValue(serieData))
{
serie.dataPoints.Add(Vector3.zero);
continue;

View File

@@ -125,7 +125,7 @@ namespace XCharts
for (i = serie.minShow; i < maxCount; i += rate)
{
if (i == maxCount - 1) includeLastData = true;
if (serie.IsIgnoreValue(showData[i].GetData(1)))
if (serie.IsIgnoreValue(showData[i]))
{
serie.dataPoints.Add(Vector3.zero);
showData[i].runtimeStackHig = 0;
@@ -146,7 +146,7 @@ namespace XCharts
if (!includeLastData)
{
i = maxCount - 1;
if (serie.IsIgnoreValue(showData[i].GetData(1)))
if (serie.IsIgnoreValue(showData[i]))
{
serie.dataPoints.Add(Vector3.zero);
showData[i].runtimeStackHig = 0;
@@ -179,7 +179,7 @@ namespace XCharts
if (serie.minShow > 0 && serie.minShow < showData.Count)
{
i = serie.minShow - 1;
if (serie.IsIgnoreValue(showData[i].GetData(1)))
if (serie.IsIgnoreValue(showData[i]))
{
serie.dataPoints.Add(Vector3.zero);
showData[i].runtimeStackHig = 0;
@@ -197,7 +197,7 @@ namespace XCharts
if (serie.maxShow > 0 && serie.maxShow < showData.Count)
{
i = serie.maxShow;
if (serie.IsIgnoreValue(showData[i].GetData(1)))
if (serie.IsIgnoreValue(showData[i]))
{
serie.dataPoints.Add(Vector3.zero);
showData[i].runtimeStackHig = 0;

View File

@@ -59,7 +59,7 @@ namespace XCharts
for (int n = 0; n < data.Count; n++)
{
var serieData = data[n];
if (!serieData.canShowLabel || serie.IsIgnoreValue(serieData.GetData(1)))
if (!serieData.canShowLabel || serie.IsIgnoreValue(serieData))
{
serieData.SetLabelActive(false);
continue;