From 53304483734a73d1905fedb3b27c016743d22267 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Sun, 4 Aug 2019 23:01:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=97=A0=E6=B3=95=E4=BB=8EIn?= =?UTF-8?q?spector=E4=B8=AD=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Scripts/UI/BarChart.cs | 11 ++-- Scripts/UI/Component/Serie.cs | 72 +------------------------- Scripts/UI/Component/Series.cs | 19 +++++-- Scripts/UI/Internal/CoordinateChart.cs | 6 +-- Scripts/UI/LineChart.cs | 19 ++++--- 5 files changed, 34 insertions(+), 93 deletions(-) diff --git a/Scripts/UI/BarChart.cs b/Scripts/UI/BarChart.cs index aceeab75..337943a9 100644 --- a/Scripts/UI/BarChart.cs +++ b/Scripts/UI/BarChart.cs @@ -43,9 +43,10 @@ namespace XCharts float offset = m_Bar.inSameBar ? (scaleWid - barWid - m_Bar.space * (stackCount - 1)) / 2 : (scaleWid - barWid * stackCount - m_Bar.space * (stackCount - 1)) / 2; + var showData = serie.GetDataList(m_DataZoom); int maxCount = maxShowDataNumber > 0 ? - (maxShowDataNumber > serie.yData.Count ? serie.yData.Count : maxShowDataNumber) - : serie.yData.Count; + (maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber) + : showData.Count; if (seriesHig.Count < minShowDataNumber) { for (int i = 0; i < minShowDataNumber; i++) @@ -59,7 +60,7 @@ namespace XCharts { seriesHig.Add(0); } - float value = serie.yData[i]; + float value = showData[i].data[1]; float pX = seriesHig[i] + coordinateX + xAxis.zeroXOffset + yAxis.axisLine.width; float pY = coordinateY + +i * scaleWid; if (!yAxis.boundaryGap) pY -= scaleWid / 2; @@ -89,7 +90,7 @@ namespace XCharts Serie serie, Color color, ref List seriesHig) { if (!IsActive(serie.name)) return; - List showData = serie.GetYDataList(m_DataZoom); + var showData = serie.GetDataList(m_DataZoom); var yAxis = m_YAxises[serie.axisIndex]; var xAxis = m_XAxises[serie.axisIndex]; if (!xAxis.show) xAxis = m_XAxises[(serie.axisIndex + 1) % m_XAxises.Count]; @@ -114,7 +115,7 @@ namespace XCharts { seriesHig.Add(0); } - float value = showData[i]; + float value = showData[i].data[1]; float pX = coordinateX + i * scaleWid; float zeroY = coordinateY + yAxis.zeroYOffset; if (!xAxis.boundaryGap) pX -= scaleWid / 2; diff --git a/Scripts/UI/Component/Serie.cs b/Scripts/UI/Component/Serie.cs index ccfb67c2..b9b9b68c 100644 --- a/Scripts/UI/Component/Serie.cs +++ b/Scripts/UI/Component/Serie.cs @@ -206,8 +206,6 @@ namespace XCharts private int filterStart { get; set; } private int filterEnd { get; set; } - private List yFilterData { get; set; } - private List xFilterData { get; set; } private List filterData { get; set; } /// @@ -493,54 +491,6 @@ namespace XCharts } } - /// - /// 获得维度Y的数据列表 - /// - /// - /// - public List GetYDataList(DataZoom dataZoom) - { - if (dataZoom != null && dataZoom.show) - { - var startIndex = (int)((yData.Count - 1) * dataZoom.start / 100); - var endIndex = (int)((yData.Count - 1) * dataZoom.end / 100); - var count = endIndex == startIndex ? 1 : endIndex - startIndex + 1; - if (yFilterData == null || yFilterData.Count != count) - { - UpdateFilterData(dataZoom); - } - return yFilterData; - } - else - { - return m_YData; - } - } - - /// - /// 获得维度X的数据列表 - /// - /// - /// - public List GetXDataList(DataZoom dataZoom) - { - if (dataZoom != null && dataZoom.show) - { - var startIndex = (int)((xData.Count - 1) * dataZoom.start / 100); - var endIndex = (int)((xData.Count - 1) * dataZoom.end / 100); - var count = endIndex == startIndex ? 1 : endIndex - startIndex + 1; - if (xFilterData == null || xFilterData.Count != count) - { - UpdateFilterData(dataZoom); - } - return xFilterData; - } - else - { - return m_XData; - } - } - /// /// 获得系列的数据列表 /// @@ -598,29 +548,13 @@ namespace XCharts { if (dataZoom != null && dataZoom.show) { - var startIndex = (int)((yData.Count - 1) * dataZoom.start / 100); - var endIndex = (int)((yData.Count - 1) * dataZoom.end / 100); + var startIndex = (int)((data.Count - 1) * dataZoom.start / 100); + var endIndex = (int)((data.Count - 1) * dataZoom.end / 100); if (startIndex != filterStart || endIndex != filterEnd) { filterStart = startIndex; filterEnd = endIndex; var count = endIndex == startIndex ? 1 : endIndex - startIndex + 1; - if (m_YData.Count > 0) - { - yFilterData = m_YData.GetRange(startIndex, count); - } - else - { - yFilterData = m_YData; - } - if (m_XData.Count > 0) - { - xFilterData = m_XData.GetRange(startIndex, count); - } - else - { - xFilterData = m_XData; - } if (m_Data.Count > 0) { filterData = m_Data.GetRange(startIndex, count); @@ -632,8 +566,6 @@ namespace XCharts } else if (endIndex == 0) { - yFilterData = new List(); - xFilterData = new List(); filterData = new List(); } } diff --git a/Scripts/UI/Component/Series.cs b/Scripts/UI/Component/Series.cs index 962b658c..b5899018 100644 --- a/Scripts/UI/Component/Series.cs +++ b/Scripts/UI/Component/Series.cs @@ -511,12 +511,12 @@ namespace XCharts { var serie = ss.Value[i]; if (serie.axisIndex != axisIndex) continue; - var showData = yValue ? serie.GetYDataList(dataZoom) : serie.GetXDataList(dataZoom); + var showData = serie.GetDataList(dataZoom); for (int j = 0; j < showData.Count; j++) { if (!_serieTotalValueForMinMax.ContainsKey(j)) _serieTotalValueForMinMax[j] = 0; - _serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + showData[j]; + _serieTotalValueForMinMax[j] = _serieTotalValueForMinMax[j] + (yValue ? showData[j].data[1] : showData[i].data[0]); } } float tmax = int.MinValue; @@ -537,11 +537,20 @@ namespace XCharts if (m_Series[i].axisIndex != axisIndex) continue; if (IsActive(i)) { - var showData = yValue ? m_Series[i].GetYDataList(dataZoom) : m_Series[i].GetXDataList(dataZoom); + var showData = m_Series[i].GetDataList(dataZoom); foreach (var data in showData) { - if (data > max) max = data; - if (data < min) min = data; + if (yValue) + { + if (data.data[1] > max) max = data.data[1]; + if (data.data[1] < min) min = data.data[1]; + } + else + { + if (data.data[0] > max) max = data.data[0]; + if (data.data[0] < min) min = data.data[0]; + } + } } } diff --git a/Scripts/UI/Internal/CoordinateChart.cs b/Scripts/UI/Internal/CoordinateChart.cs index 9f331c9b..0d2d542b 100644 --- a/Scripts/UI/Internal/CoordinateChart.cs +++ b/Scripts/UI/Internal/CoordinateChart.cs @@ -891,7 +891,7 @@ namespace XCharts { Serie serie = m_Series.series[0]; Axis axis = yAxises[0]; - float scaleWid = coordinateWid / (serie.yData.Count - 1); + float scaleWid = coordinateWid / (serie.data.Count - 1); Vector3 lp = Vector3.zero; Vector3 np = Vector3.zero; int minValue = 0; @@ -899,9 +899,9 @@ namespace XCharts m_Series.GetYMinMaxValue(null, 0, out minValue, out maxValue); axis.AdjustMinMaxValue(ref minValue, ref maxValue); if (minValue > 0 && maxValue > 0) minValue = 0; - for (int i = 0; i < serie.yData.Count; i++) + for (int i = 0; i < serie.data.Count; i++) { - float value = serie.yData[i]; + float value = serie.data[i].data[1]; float pX = coordinateX + i * scaleWid; float dataHig = value / (maxValue - minValue) * m_DataZoom.height; np = new Vector3(pX, m_DataZoom.bottom + dataHig); diff --git a/Scripts/UI/LineChart.cs b/Scripts/UI/LineChart.cs index 52b23061..fc60bd04 100644 --- a/Scripts/UI/LineChart.cs +++ b/Scripts/UI/LineChart.cs @@ -134,8 +134,7 @@ namespace XCharts lastPoints.Clear(); lastSmoothPoints.Clear(); smoothPoints.Clear(); - List yData = serie.GetYDataList(m_DataZoom); - List xData = serie.GetXDataList(m_DataZoom); + var showData = serie.GetDataList(m_DataZoom); Vector3 lp = Vector3.zero; Vector3 np = Vector3.zero; @@ -145,8 +144,8 @@ namespace XCharts float scaleWid = xAxis.GetDataWidth(coordinateWid, m_DataZoom); float startX = coordinateX + (xAxis.boundaryGap ? scaleWid / 2 : 0); int maxCount = maxShowDataNumber > 0 ? - (maxShowDataNumber > yData.Count ? yData.Count : maxShowDataNumber) - : yData.Count; + (maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber) + : showData.Count; dataCount = (maxCount - minShowDataNumber); if (m_Line.area && points.Count > 0) { @@ -180,11 +179,11 @@ namespace XCharts { seriesHig.Add(0); } - float yValue = yData[i]; + float yValue = showData[i].data[1]; float yDataHig; if (xAxis.IsValue()) { - float xValue = i > xData.Count - 1 ? 0 : xData[i]; + float xValue = i > showData.Count - 1 ? 0 : showData[i].data[0]; float pX = coordinateX + xAxis.axisLine.width; float pY = seriesHig[i] + coordinateY + xAxis.axisLine.width; float xDataHig = (xValue - xAxis.minValue) / (xAxis.maxValue - xAxis.minValue) * coordinateWid; @@ -336,7 +335,7 @@ namespace XCharts lastPoints.Clear(); lastSmoothPoints.Clear(); smoothPoints.Clear(); - + var showData = serie.GetDataList(m_DataZoom); Vector3 lp = Vector3.zero; Vector3 np = Vector3.zero; var xAxis = m_XAxises[serie.axisIndex]; @@ -345,8 +344,8 @@ namespace XCharts float scaleWid = yAxis.GetDataWidth(coordinateHig, m_DataZoom); float startY = coordinateY + (yAxis.boundaryGap ? scaleWid / 2 : 0); int maxCount = maxShowDataNumber > 0 ? - (maxShowDataNumber > serie.yData.Count ? serie.yData.Count : maxShowDataNumber) - : serie.yData.Count; + (maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber) + : showData.Count; dataCount = (maxCount - minShowDataNumber); if (m_Line.area && points.Count > 0) { @@ -380,7 +379,7 @@ namespace XCharts { seriesHig.Add(0); } - float value = serie.yData[i]; + float value = showData[i].data[1]; float pY = startY + i * scaleWid; float pX = seriesHig[i] + coordinateX + yAxis.axisLine.width; float dataHig = (value - xAxis.minValue) / (xAxis.maxValue - xAxis.minValue) * coordinateWid;