mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 00:11:37 +00:00
修复无法从Inspector中修改数据的问题
This commit is contained in:
@@ -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<float> seriesHig)
|
||||
{
|
||||
if (!IsActive(serie.name)) return;
|
||||
List<float> 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;
|
||||
|
||||
@@ -206,8 +206,6 @@ namespace XCharts
|
||||
|
||||
private int filterStart { get; set; }
|
||||
private int filterEnd { get; set; }
|
||||
private List<float> yFilterData { get; set; }
|
||||
private List<float> xFilterData { get; set; }
|
||||
private List<SerieData> filterData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
@@ -493,54 +491,6 @@ namespace XCharts
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得维度Y的数据列表
|
||||
/// </summary>
|
||||
/// <param name="dataZoom"></param>
|
||||
/// <returns></returns>
|
||||
public List<float> 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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得维度X的数据列表
|
||||
/// </summary>
|
||||
/// <param name="dataZoom"></param>
|
||||
/// <returns></returns>
|
||||
public List<float> 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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获得系列的数据列表
|
||||
/// </summary>
|
||||
@@ -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<float>();
|
||||
xFilterData = new List<float>();
|
||||
filterData = new List<SerieData>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -134,8 +134,7 @@ namespace XCharts
|
||||
lastPoints.Clear();
|
||||
lastSmoothPoints.Clear();
|
||||
smoothPoints.Clear();
|
||||
List<float> yData = serie.GetYDataList(m_DataZoom);
|
||||
List<float> 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;
|
||||
|
||||
Reference in New Issue
Block a user