mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-19 15:00:08 +00:00
重构minShowDataNumber、maxShowDataNumber、maxCacheDataNumber到Serie的minShow、maxShow、maxCache
This commit is contained in:
@@ -39,9 +39,6 @@ namespace XCharts
|
||||
[SerializeField] protected Tooltip m_Tooltip = Tooltip.defaultTooltip;
|
||||
[SerializeField] protected Series m_Series = Series.defaultSeries;
|
||||
[SerializeField] protected float m_Large = 1;
|
||||
[SerializeField] protected int m_MinShowDataNumber;
|
||||
[SerializeField] protected int m_MaxShowDataNumber;
|
||||
[SerializeField] protected int m_MaxCacheDataNumber;
|
||||
[SerializeField] [Range(1, 8)] private float m_LineSmoothStyle = 2f;
|
||||
|
||||
[NonSerialized] private Theme m_CheckTheme = 0;
|
||||
|
||||
@@ -41,38 +41,6 @@ namespace XCharts
|
||||
/// <value></value>
|
||||
public float chartHeight { get { return m_ChartHeight; } }
|
||||
|
||||
/// <summary>
|
||||
/// The min number of data to show in chart.
|
||||
/// 图表所显示数据的最小索引
|
||||
/// </summary>
|
||||
public int minShowDataNumber
|
||||
{
|
||||
get { return m_MinShowDataNumber; }
|
||||
set { m_MinShowDataNumber = value; if (m_MinShowDataNumber < 0) m_MinShowDataNumber = 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The max number of data to show in chart.
|
||||
/// 图表所显示数据的最大索引
|
||||
/// </summary>
|
||||
public int maxShowDataNumber
|
||||
{
|
||||
get { return m_MaxShowDataNumber; }
|
||||
set { m_MaxShowDataNumber = value; if (m_MaxShowDataNumber < 0) m_MaxShowDataNumber = 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// The max number of serie and axis data cache.
|
||||
/// The first data will be remove when the size of serie and axis data is larger then maxCacheDataNumber.
|
||||
/// default:0,unlimited.
|
||||
/// 图表每个系列中可缓存的最大数据量。默认为0没有限制,大于0时超过指定值会移除旧数据再插入新数据。
|
||||
/// </summary>
|
||||
public int maxCacheDataNumber
|
||||
{
|
||||
get { return m_MaxCacheDataNumber; }
|
||||
set { m_MaxCacheDataNumber = value; if (m_MaxCacheDataNumber < 0) m_MaxCacheDataNumber = 0; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// the smooth line chart style.
|
||||
/// 平滑折线图的平滑系数。
|
||||
@@ -159,7 +127,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(string serieName, float data, string dataName = null)
|
||||
{
|
||||
var success = m_Series.AddData(serieName, data, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddData(serieName, data, dataName);
|
||||
if (success) RefreshChart();
|
||||
return success;
|
||||
}
|
||||
@@ -174,7 +142,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(int serieIndex, float data, string dataName = null)
|
||||
{
|
||||
var success = m_Series.AddData(serieIndex, data, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddData(serieIndex, data, dataName);
|
||||
if (success)
|
||||
{
|
||||
RefreshChart();
|
||||
@@ -193,7 +161,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(string serieName, List<float> multidimensionalData, string dataName = null)
|
||||
{
|
||||
var success = m_Series.AddData(serieName, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddData(serieName, multidimensionalData, dataName);
|
||||
if (success)
|
||||
{
|
||||
RefreshChart();
|
||||
@@ -212,7 +180,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(int serieIndex, List<float> multidimensionalData, string dataName = null)
|
||||
{
|
||||
var success = m_Series.AddData(serieIndex, multidimensionalData, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddData(serieIndex, multidimensionalData, dataName);
|
||||
if (success)
|
||||
{
|
||||
RefreshChart();
|
||||
@@ -232,7 +200,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(string serieName, float xValue, float yValue, string dataName)
|
||||
{
|
||||
var success = m_Series.AddXYData(serieName, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddXYData(serieName, xValue, yValue, dataName);
|
||||
if (success)
|
||||
{
|
||||
RefreshChart();
|
||||
@@ -252,7 +220,7 @@ namespace XCharts
|
||||
/// <returns>Returns True on success</returns>
|
||||
public virtual bool AddData(int serieIndex, float xValue, float yValue, string dataName = null)
|
||||
{
|
||||
var success = m_Series.AddXYData(serieIndex, xValue, yValue, dataName, m_MaxCacheDataNumber);
|
||||
var success = m_Series.AddXYData(serieIndex, xValue, yValue, dataName);
|
||||
if (success)
|
||||
{
|
||||
RefreshChart();
|
||||
|
||||
@@ -92,7 +92,7 @@ namespace XCharts
|
||||
/// <param name="xAxisIndex">which xAxis should category add to</param>
|
||||
public void AddXAxisData(string category, int xAxisIndex = 0)
|
||||
{
|
||||
m_XAxises[xAxisIndex].AddData(category, m_MaxCacheDataNumber);
|
||||
m_XAxises[xAxisIndex].AddData(category);
|
||||
m_XAxisChanged = true;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace XCharts
|
||||
/// <param name="yAxisIndex">which yAxis should category add to</param>
|
||||
public void AddYAxisData(string category, int yAxisIndex = 0)
|
||||
{
|
||||
m_YAxises[yAxisIndex].AddData(category, m_MaxCacheDataNumber);
|
||||
m_YAxises[yAxisIndex].AddData(category);
|
||||
m_YAxisChanged = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,17 +26,17 @@ namespace XCharts
|
||||
float space = serie.barGap == -1 ? offset : offset + m_BarLastOffset;
|
||||
|
||||
var showData = serie.GetDataList(m_DataZoom);
|
||||
int maxCount = maxShowDataNumber > 0 ?
|
||||
(maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber)
|
||||
int maxCount = serie.maxShow > 0 ?
|
||||
(serie.maxShow > showData.Count ? showData.Count : serie.maxShow)
|
||||
: showData.Count;
|
||||
if (seriesHig.Count < minShowDataNumber)
|
||||
if (seriesHig.Count < serie.minShow)
|
||||
{
|
||||
for (int i = 0; i < minShowDataNumber; i++)
|
||||
for (int i = 0; i < serie.minShow; i++)
|
||||
{
|
||||
seriesHig.Add(0);
|
||||
}
|
||||
}
|
||||
for (int i = minShowDataNumber; i < maxCount; i++)
|
||||
for (int i = serie.minShow; i < maxCount; i++)
|
||||
{
|
||||
if (i >= seriesHig.Count)
|
||||
{
|
||||
@@ -110,18 +110,18 @@ namespace XCharts
|
||||
float offset = (categoryWidth - totalBarWidth) / 2;
|
||||
float barGapWidth = barWidth + barWidth * barGap;
|
||||
float space = serie.barGap == -1 ? offset : offset + m_BarLastOffset;
|
||||
int maxCount = maxShowDataNumber > 0 ?
|
||||
(maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber)
|
||||
int maxCount = serie.maxShow > 0 ?
|
||||
(serie.maxShow > showData.Count ? showData.Count : serie.maxShow)
|
||||
: showData.Count;
|
||||
|
||||
if (seriesHig.Count < minShowDataNumber)
|
||||
if (seriesHig.Count < serie.minShow)
|
||||
{
|
||||
for (int i = 0; i < minShowDataNumber; i++)
|
||||
for (int i = 0; i < serie.minShow; i++)
|
||||
{
|
||||
seriesHig.Add(0);
|
||||
}
|
||||
}
|
||||
for (int i = minShowDataNumber; i < maxCount; i++)
|
||||
for (int i = serie.minShow; i < maxCount; i++)
|
||||
{
|
||||
if (i >= seriesHig.Count)
|
||||
{
|
||||
|
||||
@@ -84,22 +84,22 @@ namespace XCharts
|
||||
if (!xAxis.show) xAxis = m_XAxises[(serie.axisIndex + 1) % m_XAxises.Count];
|
||||
float scaleWid = xAxis.GetDataWidth(coordinateWid, m_DataZoom);
|
||||
float startX = coordinateX + (xAxis.boundaryGap ? scaleWid / 2 : 0);
|
||||
int maxCount = maxShowDataNumber > 0 ?
|
||||
(maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber)
|
||||
int maxCount = serie.maxShow > 0 ?
|
||||
(serie.maxShow > showData.Count ? showData.Count : serie.maxShow)
|
||||
: showData.Count;
|
||||
int i;
|
||||
if (seriesHig.Count < minShowDataNumber)
|
||||
if (seriesHig.Count < serie.minShow)
|
||||
{
|
||||
for (i = 0; i < minShowDataNumber; i++)
|
||||
for (i = 0; i < serie.minShow; i++)
|
||||
{
|
||||
seriesHig.Add(0);
|
||||
}
|
||||
}
|
||||
int rate = 1;
|
||||
var sampleDist = serie.lineSampleDist;
|
||||
if (sampleDist > 0) rate = (int)((maxCount - minShowDataNumber) / (coordinateWid / sampleDist));
|
||||
if (sampleDist > 0) rate = (int)((maxCount - serie.minShow) / (coordinateWid / sampleDist));
|
||||
if (rate < 1) rate = 1;
|
||||
for (i = minShowDataNumber; i < maxCount; i += rate)
|
||||
for (i = serie.minShow; i < maxCount; i += rate)
|
||||
{
|
||||
if (i >= seriesHig.Count)
|
||||
{
|
||||
@@ -269,13 +269,13 @@ namespace XCharts
|
||||
if (!yAxis.show) yAxis = m_YAxises[(serie.axisIndex + 1) % m_YAxises.Count];
|
||||
float scaleWid = yAxis.GetDataWidth(coordinateHig, m_DataZoom);
|
||||
float startY = coordinateY + (yAxis.boundaryGap ? scaleWid / 2 : 0);
|
||||
int maxCount = maxShowDataNumber > 0 ?
|
||||
(maxShowDataNumber > showData.Count ? showData.Count : maxShowDataNumber)
|
||||
int maxCount = serie.maxShow > 0 ?
|
||||
(serie.maxShow > showData.Count ? showData.Count : serie.maxShow)
|
||||
: showData.Count;
|
||||
int i = 0;
|
||||
if (seriesHig.Count < minShowDataNumber)
|
||||
if (seriesHig.Count < serie.minShow)
|
||||
{
|
||||
for (i = 0; i < minShowDataNumber; i++)
|
||||
for (i = 0; i < serie.minShow; i++)
|
||||
{
|
||||
seriesHig.Add(0);
|
||||
}
|
||||
@@ -284,9 +284,9 @@ namespace XCharts
|
||||
|
||||
int rate = 1;
|
||||
var sampleDist = serie.lineSampleDist;
|
||||
if (sampleDist > 0) rate = (int)((maxCount - minShowDataNumber) / (coordinateWid / sampleDist));
|
||||
if (sampleDist > 0) rate = (int)((maxCount - serie.minShow) / (coordinateWid / sampleDist));
|
||||
if (rate < 1) rate = 1;
|
||||
for (i = minShowDataNumber; i < maxCount; i += rate)
|
||||
for (i = serie.minShow; i < maxCount; i += rate)
|
||||
{
|
||||
if (i >= seriesHig.Count)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user