mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-25 18:30:14 +00:00
[bug][datazoom] fix chart display error when datazoom enable.
This commit is contained in:
@@ -176,10 +176,10 @@ namespace XCharts.Runtime
|
||||
for (int i = serie.minShow; i < maxCount; i++)
|
||||
{
|
||||
var serieData = showData[i];
|
||||
serieData.index = i;
|
||||
if (!serieData.show || serie.IsIgnoreValue(serieData))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -228,9 +228,14 @@ namespace XCharts.Runtime
|
||||
Rect.MinMaxRect(plb.x, m_SerieGrid.context.y, prb.x, m_SerieGrid.context.y + relativedAxisLength);
|
||||
|
||||
if (!serie.clip || (serie.clip && m_SerieGrid.Contains(top)))
|
||||
{
|
||||
serie.context.dataPoints.Add(top);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
}
|
||||
else
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (serie.show && currHig != 0 && !serie.placeHolder)
|
||||
{
|
||||
|
||||
@@ -152,6 +152,7 @@ namespace XCharts.Runtime
|
||||
if (!serieData.show || serie.IsIgnoreValue(serieData))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -184,6 +185,7 @@ namespace XCharts.Runtime
|
||||
serieData.context.position = top;
|
||||
serieData.context.rect = Rect.MinMaxRect(plb.x, plb.y, prb.x, prt.y);
|
||||
serie.context.dataPoints.Add(top);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
DrawNormalBar(vh, serie, serieData, itemStyle, colorIndex, highlight, gap, barWidth,
|
||||
pX, pY, plb, plt, prt, prb, false, m_SerieGrid, areaColor, areaToColor);
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@ namespace XCharts.Runtime
|
||||
if (serie.IsIgnoreValue(serieData))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
continue;
|
||||
}
|
||||
var state = SerieHelper.GetSerieState(serie, serieData);
|
||||
@@ -154,6 +155,7 @@ namespace XCharts.Runtime
|
||||
top = chart.ClampInGrid(grid, top);
|
||||
}
|
||||
serie.context.dataPoints.Add(top);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
var areaColor = isRise ?
|
||||
itemStyle.GetColor(theme.serie.candlestickColor) :
|
||||
itemStyle.GetColor0(theme.serie.candlestickColor0);
|
||||
|
||||
@@ -113,6 +113,7 @@ namespace XCharts.Runtime
|
||||
if (serie.IsIgnoreValue(serieData))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
continue;
|
||||
}
|
||||
var open = serieData.GetCurrData(0, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
@@ -154,6 +155,7 @@ namespace XCharts.Runtime
|
||||
// top = chart.ClampInGrid(grid, top);
|
||||
// }
|
||||
serie.context.dataPoints.Add(top);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
var areaColor = isRise ?
|
||||
itemStyle.GetColor(theme.serie.candlestickColor) :
|
||||
itemStyle.GetColor0(theme.serie.candlestickColor0);
|
||||
|
||||
@@ -155,7 +155,6 @@ namespace XCharts.Runtime
|
||||
ChartConst.clearColor32;
|
||||
borderToColor.a = (byte) (borderToColor.a * serie.itemStyle.opacity);
|
||||
|
||||
serie.context.dataPoints.Clear();
|
||||
serie.animation.InitProgress(0, xCount);
|
||||
var animationIndex = serie.animation.GetCurrIndex();
|
||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||
@@ -165,13 +164,13 @@ namespace XCharts.Runtime
|
||||
for (int n = 0; n < serie.dataCount; n++)
|
||||
{
|
||||
var serieData = serie.data[n];
|
||||
serieData.index = n;
|
||||
var i = (int) serieData.GetData(0);
|
||||
var j = (int) serieData.GetData(1);
|
||||
var dimension = VisualMapHelper.GetDimension(visualMap, serieData.data.Count);
|
||||
if (serie.IsIgnoreValue(serieData, dimension))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
continue;
|
||||
}
|
||||
var value = serieData.GetCurrData(dimension, dataChangeDuration, yAxis.inverse,
|
||||
@@ -180,6 +179,7 @@ namespace XCharts.Runtime
|
||||
var pos = new Vector3(zeroX + (i + (xAxis.boundaryGap ? 0.5f : 0)) * xWidth,
|
||||
zeroY + (j + (yAxis.boundaryGap ? 0.5f : 0)) * yWidth);
|
||||
serie.context.dataPoints.Add(pos);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
serieData.context.position = pos;
|
||||
|
||||
serieData.context.canShowLabel = false;
|
||||
|
||||
@@ -109,13 +109,16 @@ namespace XCharts.Runtime
|
||||
{
|
||||
serie.context.pointerEnter = true;
|
||||
serie.context.pointerItemDataIndex = serieData.index;
|
||||
serie.interact.SetValue(ref needInteract, lineWidth, true);
|
||||
}
|
||||
}
|
||||
if (lastIndex != serie.context.pointerItemDataIndex)
|
||||
{
|
||||
needInteract = true;
|
||||
}
|
||||
if (serie.context.pointerItemDataIndex >= 0)
|
||||
serie.interact.SetValue(ref needInteract, lineWidth, true, chart.theme.serie.selectedRate);
|
||||
else
|
||||
serie.interact.SetValue(ref needInteract, lineWidth);
|
||||
}
|
||||
if (needInteract)
|
||||
{
|
||||
@@ -148,7 +151,8 @@ namespace XCharts.Runtime
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
var serieData = serie.GetSerieData(i);
|
||||
var index = serie.context.dataIndexs[i];
|
||||
var serieData = serie.GetSerieData(index);
|
||||
if (serieData == null)
|
||||
continue;
|
||||
if (serieData.context.isClip)
|
||||
@@ -156,7 +160,7 @@ namespace XCharts.Runtime
|
||||
var state = SerieHelper.GetSerieState(serie, serieData, true);
|
||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData, state);
|
||||
|
||||
if (!symbol.show || !symbol.ShowSymbol(i, count))
|
||||
if (!symbol.show || !symbol.ShowSymbol(index, count))
|
||||
continue;
|
||||
|
||||
var pos = serie.context.dataPoints[i];
|
||||
@@ -178,7 +182,6 @@ namespace XCharts.Runtime
|
||||
serieData.interact.SetValue(ref interacting, symbolSize);
|
||||
symbolSize = serie.animation.GetSysmbolSize(symbolSize);
|
||||
}
|
||||
|
||||
float symbolBorder = 0f;
|
||||
float[] cornerRadius = null;
|
||||
Color32 symbolColor, symbolToColor, symbolEmptyColor, borderColor;
|
||||
@@ -335,6 +338,7 @@ namespace XCharts.Runtime
|
||||
serie.context.dataIgnores.Add(false);
|
||||
serieData.context.position = np;
|
||||
serie.context.dataPoints.Add(np);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
lp = np;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,6 +208,7 @@ namespace XCharts.Runtime
|
||||
serieData.context.position = np;
|
||||
|
||||
serie.context.dataPoints.Add(np);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
serie.context.dataIgnores.Add(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,6 @@ namespace XCharts.Runtime
|
||||
|
||||
serie.animation.InitProgress(currDetailProgress, totalDetailProgress);
|
||||
|
||||
serie.context.dataPoints.Clear();
|
||||
serie.containerIndex = parallel.index;
|
||||
serie.containterInstanceId = parallel.instanceId;
|
||||
|
||||
|
||||
@@ -195,7 +195,6 @@ namespace XCharts.Runtime
|
||||
for (int n = 0; n < data.Count; n++)
|
||||
{
|
||||
var serieData = data[n];
|
||||
serieData.index = n;
|
||||
var value = isAllZeroValue ? zeroReplaceValue : serieData.GetCurrData(1, dataChangeDuration);
|
||||
serieData.context.startAngle = startDegree;
|
||||
serieData.context.toAngle = startDegree;
|
||||
|
||||
@@ -110,7 +110,6 @@ namespace XCharts.Runtime
|
||||
for (int i = 0; i < serie.data.Count; i++)
|
||||
{
|
||||
var serieData = serie.data[i];
|
||||
serieData.index = i;
|
||||
var symbol = SerieHelper.GetSerieSymbol(serie, serieData);
|
||||
var symbolSize = symbol.GetSize(serieData.data, chart.theme.serie.lineSymbolSize);
|
||||
if (needHideAll || m_LegendEnter)
|
||||
@@ -159,7 +158,6 @@ namespace XCharts.Runtime
|
||||
for (int i = 0; i < serie.data.Count; i++)
|
||||
{
|
||||
var serieData = serie.data[i];
|
||||
serieData.index = i;
|
||||
var size = SerieHelper.GetSysmbolSize(serie, serieData, chart.theme, themeSymbolSize);
|
||||
if (Vector3.Distance(chart.pointerPos, serieData.context.position) < size * 2)
|
||||
{
|
||||
@@ -351,7 +349,6 @@ namespace XCharts.Runtime
|
||||
var angle = 2 * Mathf.PI / indicatorNum;
|
||||
var centerPos = m_RadarCoord.context.center;
|
||||
serie.animation.InitProgress(0, 1);
|
||||
serie.context.dataPoints.Clear();
|
||||
if (!serie.show || serie.animation.HasFadeOut())
|
||||
{
|
||||
return;
|
||||
@@ -371,7 +368,6 @@ namespace XCharts.Runtime
|
||||
for (int j = 0; j < serie.data.Count; j++)
|
||||
{
|
||||
var serieData = serie.data[j];
|
||||
serieData.index = j;
|
||||
string dataName = serieData.name;
|
||||
|
||||
if (!serieData.show)
|
||||
@@ -430,6 +426,7 @@ namespace XCharts.Runtime
|
||||
lastColor = lineColor;
|
||||
}
|
||||
serie.context.dataPoints.Add(startPoint);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
serieData.context.position = startPoint;
|
||||
serieData.context.labelPosition = startPoint;
|
||||
|
||||
|
||||
@@ -152,7 +152,6 @@ namespace XCharts.Runtime
|
||||
for (int j = 0; j < data.Count; j++)
|
||||
{
|
||||
var serieData = data[j];
|
||||
serieData.index = j;
|
||||
if (!serieData.show) continue;
|
||||
if (serieData.IsDataChanged()) dataChanging = true;
|
||||
var value = serieData.GetFirstData(dataChangeDuration);
|
||||
@@ -303,7 +302,6 @@ namespace XCharts.Runtime
|
||||
for (int i = 0; i < serie.data.Count; i++)
|
||||
{
|
||||
var serieData = serie.data[i];
|
||||
serieData.index = i;
|
||||
if (dist >= serieData.context.insideRadius &&
|
||||
dist <= serieData.context.outsideRadius &&
|
||||
angle >= serieData.context.startAngle &&
|
||||
|
||||
@@ -172,6 +172,7 @@ namespace XCharts.Runtime
|
||||
continue;
|
||||
|
||||
serie.context.dataPoints.Add(pos);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
serieData.context.position = pos;
|
||||
var datas = serieData.data;
|
||||
var symbolSize = 0f;
|
||||
@@ -276,6 +277,7 @@ namespace XCharts.Runtime
|
||||
pos = new Vector3(axis.context.x + xDataHig, axis.context.y + yDataHig);
|
||||
}
|
||||
serie.context.dataPoints.Add(pos);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
serieData.context.position = pos;
|
||||
|
||||
var datas = serieData.data;
|
||||
|
||||
@@ -96,6 +96,10 @@ namespace XCharts.Runtime
|
||||
/// </summary>
|
||||
public List<bool> dataIgnores = new List<bool>();
|
||||
/// <summary>
|
||||
/// 数据对应的index索引。dataIndexs 和 dataPoints 一一对应。
|
||||
/// </summary>
|
||||
public List<int> dataIndexs = new List<int>();
|
||||
/// <summary>
|
||||
/// 排序后的数据
|
||||
/// </summary>
|
||||
public List<SerieData> sortedData = new List<SerieData>();
|
||||
|
||||
@@ -549,6 +549,10 @@ namespace XCharts.Runtime
|
||||
public void SetLabelActive(bool flag)
|
||||
{
|
||||
if (labelObject != null) labelObject.SetActive(flag);
|
||||
foreach (var labelObject in context.dataLabels)
|
||||
{
|
||||
labelObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
public void SetIconActive(bool flag)
|
||||
{
|
||||
|
||||
@@ -368,10 +368,18 @@ namespace XCharts.Runtime
|
||||
return;
|
||||
|
||||
var dataChangeDuration = serie.animation.GetUpdateAnimationDuration();
|
||||
var needCheck = serie.context.dataIndexs.Count > 0;
|
||||
foreach (var serieData in serie.data)
|
||||
{
|
||||
if (serieData.labelObject == null && serieData.context.dataLabels.Count <= 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (needCheck && !serie.context.dataIndexs.Contains(serieData.index))
|
||||
{
|
||||
serieData.SetLabelActive(false);
|
||||
continue;
|
||||
};
|
||||
var currLabel = SerieHelper.GetSerieLabel(serie, serieData);
|
||||
var isIgnore = serie.IsIgnoreIndex(serieData.index, defaultDimension);
|
||||
if (serie.show &&
|
||||
@@ -429,10 +437,6 @@ namespace XCharts.Runtime
|
||||
else
|
||||
{
|
||||
serieData.SetLabelActive(false);
|
||||
foreach (var labelObject in serieData.context.dataLabels)
|
||||
{
|
||||
labelObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user