mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-14 20:00:09 +00:00
[improve][Candlestick] improve CandlestickChart
This commit is contained in:
@@ -58,8 +58,9 @@
|
||||
|
||||
## master
|
||||
|
||||
* (2022.08.25) 增加`Tooltip`的`position`参数支持设置移动平台不同的显示位置
|
||||
* (2022.08.25) 删除`Tooltip`的`fixedXEnable`和`fixedYEnable`参数
|
||||
* (2022.08.26) 优化`CandlestickChart`表现,调整相关的`AddData()`接口参数
|
||||
* (2022.08.26) 增加`Tooltip`的`position`参数支持设置移动平台不同的显示位置
|
||||
* (2022.08.26) 删除`Tooltip`的`fixedXEnable`和`fixedYEnable`参数
|
||||
* (2022.08.25) 优化`EmphasisStyle`对`label`的支持
|
||||
* (2022.08.25) 增加`formatter`对`{d3}`指定维度数据百分比的支持
|
||||
* (2022.08.24) 修复`ScatterChart`的`label`不刷新的问题
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace XCharts.Editor
|
||||
{
|
||||
public override void OnCustomInspectorGUI()
|
||||
{
|
||||
PropertyField("m_ColorBy");
|
||||
PropertyField("m_XAxisIndex");
|
||||
PropertyField("m_YAxisIndex");
|
||||
PropertyFieldLimitMin("m_MinShow", 0);
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace XCharts.Example
|
||||
var heighest = boxVals[3];
|
||||
|
||||
chart.AddXAxisData(i.ToString());
|
||||
chart.AddData(0, open, close, lowest, heighest);
|
||||
chart.AddData(0, i, open, close, lowest, heighest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -377,23 +377,23 @@ namespace XCharts.Runtime
|
||||
return AddData(serieIndex, xValue, yValue, dataName, dataId);
|
||||
}
|
||||
|
||||
public SerieData AddData(int serieIndex, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
public SerieData AddData(int serieIndex, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
{
|
||||
var serie = GetSerie(serieIndex);
|
||||
if (serie != null)
|
||||
{
|
||||
var serieData = serie.AddData(open, close, lowest, heighest, dataName, dataId);
|
||||
var serieData = serie.AddData(indexOrTimestamp, open, close, lowest, heighest, dataName, dataId);
|
||||
RefreshPainter(serie.painter);
|
||||
return serieData;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public SerieData AddData(string serieName, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
public SerieData AddData(string serieName, double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
{
|
||||
var serie = GetSerie(serieName);
|
||||
if (serie != null)
|
||||
{
|
||||
var serieData = serie.AddData(open, close, lowest, heighest, dataName, dataId);
|
||||
var serieData = serie.AddData(indexOrTimestamp, open, close, lowest, heighest, dataName, dataId);
|
||||
RefreshPainter(serie.painter);
|
||||
return serieData;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace XCharts.Runtime
|
||||
var close = Random.Range(40, 90);
|
||||
var lowest = Random.Range(0, 50);
|
||||
var heighest = Random.Range(50, 100);
|
||||
chart.AddData(serie.index, open, close, lowest, heighest);
|
||||
chart.AddData(serie.index, i, open, close, lowest, heighest);
|
||||
}
|
||||
return serie;
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ namespace XCharts.Runtime
|
||||
for (int i = serie.minShow; i < maxCount; i++)
|
||||
{
|
||||
var serieData = showData[i];
|
||||
if (serie.IsIgnoreValue(serieData))
|
||||
if (!serieData.show || serie.IsIgnoreValue(serieData))
|
||||
{
|
||||
serie.context.dataPoints.Add(Vector3.zero);
|
||||
serie.context.dataIndexs.Add(serieData.index);
|
||||
@@ -116,10 +116,11 @@ namespace XCharts.Runtime
|
||||
}
|
||||
var state = SerieHelper.GetSerieState(serie, serieData);
|
||||
var itemStyle = SerieHelper.GetItemStyle(serie, serieData, state);
|
||||
var open = serieData.GetCurrData(0, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var close = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var lowest = serieData.GetCurrData(2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var heighest = serieData.GetCurrData(3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
||||
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var isRise = yAxis.inverse ? close<open : close> open;
|
||||
var borderWidth = open == 0 ? 0f :
|
||||
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace XCharts.Runtime
|
||||
var close = lastValue + Random.Range(-5, 10);
|
||||
var lowest = lastValue + Random.Range(-15, -10);
|
||||
var heighest = lastValue + Random.Range(10, 20);
|
||||
chart.AddData(serie.index, open, close, lowest, heighest);
|
||||
chart.AddData(serie.index, i, open, close, lowest, heighest);
|
||||
}
|
||||
return serie;
|
||||
}
|
||||
|
||||
@@ -110,16 +110,17 @@ namespace XCharts.Runtime
|
||||
for (int i = serie.minShow; i < maxCount; i++)
|
||||
{
|
||||
var serieData = showData[i];
|
||||
if (serie.IsIgnoreValue(serieData))
|
||||
if (!serieData.show || 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);
|
||||
var close = serieData.GetCurrData(1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var lowest = serieData.GetCurrData(2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var heighest = serieData.GetCurrData(3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var startDataIndex = serieData.data.Count > 4 ? 1 : 0;
|
||||
var open = serieData.GetCurrData(startDataIndex, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var close = serieData.GetCurrData(startDataIndex + 1, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var lowest = serieData.GetCurrData(startDataIndex + 2, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var heighest = serieData.GetCurrData(startDataIndex + 3, dataChangeDuration, yAxis.inverse, yMinValue, yMaxValue);
|
||||
var isRise = yAxis.inverse ? close<open : close> open;
|
||||
var borderWidth = open == 0 ? 0f :
|
||||
(itemStyle.runtimeBorderWidth == 0 ? theme.serie.candlestickBorderWidth :
|
||||
|
||||
@@ -1296,11 +1296,12 @@ namespace XCharts.Runtime
|
||||
/// <param name="dataName"></param>
|
||||
/// <param name="dataId">the unique id of data</param>
|
||||
/// <returns></returns>
|
||||
public SerieData AddData(double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
public SerieData AddData(double indexOrTimestamp, double open, double close, double lowest, double heighest, string dataName = null, string dataId = null)
|
||||
{
|
||||
CheckMaxCache();
|
||||
var serieData = SerieDataPool.Get();
|
||||
serieData.data.Clear();
|
||||
serieData.data.Add(indexOrTimestamp);
|
||||
serieData.data.Add(open);
|
||||
serieData.data.Add(close);
|
||||
serieData.data.Add(lowest);
|
||||
@@ -1309,7 +1310,7 @@ namespace XCharts.Runtime
|
||||
serieData.index = m_Data.Count;
|
||||
serieData.id = dataId;
|
||||
AddSerieData(serieData);
|
||||
m_ShowDataDimension = 4;
|
||||
m_ShowDataDimension = 5;
|
||||
SetVerticesDirty();
|
||||
CheckDataName(dataName);
|
||||
labelDirty = true;
|
||||
|
||||
Reference in New Issue
Block a user