mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-19 23:10:06 +00:00
增加SerieData的ignore可忽略当前数据项
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
|
||||
## Latest
|
||||
|
||||
* (2021.04.28) 增加`SerieData`的`ignore`可忽略当前数据项
|
||||
* (2021.04.28) 修复`DataZoom`下`AxisLabel`显示不准确的问题 #138
|
||||
* (2021.04.26) 修复运行时动态创建图表会异常的问题 #137
|
||||
* (2021.04.26) 增加`BarChart`绘制渐变边框的支持
|
||||
|
||||
@@ -393,6 +393,7 @@ namespace XCharts
|
||||
if (showDetail)
|
||||
{
|
||||
EditorGUI.indentLevel += 2;
|
||||
var m_Ignore = serieData.FindPropertyRelative("m_Ignore");
|
||||
var m_Icon = serieData.FindPropertyRelative("m_IconStyle");
|
||||
var m_EnableLabel = serieData.FindPropertyRelative("m_EnableLabel");
|
||||
var m_Label = serieData.FindPropertyRelative("m_Label");
|
||||
@@ -402,6 +403,8 @@ namespace XCharts
|
||||
var m_Emphasis = serieData.FindPropertyRelative("m_Emphasis");
|
||||
var m_EnableSymbol = serieData.FindPropertyRelative("m_EnableSymbol");
|
||||
var m_Symbol = serieData.FindPropertyRelative("m_Symbol");
|
||||
EditorGUI.PropertyField(drawRect, m_Ignore);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Ignore));
|
||||
EditorGUI.PropertyField(drawRect, m_Icon);
|
||||
AddHeight(EditorGUI.GetPropertyHeight(m_Icon));
|
||||
EditorGUI.PropertyField(drawRect, m_Symbol);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user