修复BarChart清空数据重新赋值后SerieLabel显示异常的问题

This commit is contained in:
monitor1394
2019-11-22 09:46:30 +08:00
parent 5aaa53c503
commit 110f4ee5f8
3 changed files with 17 additions and 10 deletions

View File

@@ -1,7 +1,8 @@
# 更新日志 # 更新日志
* (2019.11.16) 修复`SerieLabel`设置`color`不生效的问题 * (2019.11.22) 修复`BarChart`清空数据重新赋值后`SerieLabel`显示异常的问题
* (2019.11.16) 修复`SerieLabel`设置`color`等参数不生效的问题
* (2019.11.12) 发布`v1.0.5`版本 * (2019.11.12) 发布`v1.0.5`版本
* (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题 * (2019.11.12) 修复`2018.3`以下版本打开项目报错的问题
* (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置 * (2019.11.12) 增加`IconStyle`子组件,优化`SerieData`的图标配置

View File

@@ -82,7 +82,7 @@ namespace XCharts
/// 标志位置。 /// 标志位置。
/// </summary> /// </summary>
public Vector3 labelPosition { get; set; } public Vector3 labelPosition { get; set; }
public bool m_CanShowLabel = true; private bool m_CanShowLabel = true;
/// <summary> /// <summary>
/// 是否可以显示Label /// 是否可以显示Label
/// </summary> /// </summary>

View File

@@ -49,6 +49,8 @@ namespace XCharts
{ {
seriesHig.Add(0); seriesHig.Add(0);
} }
var serieData = showData[i];
serieData.canShowLabel = true;
float value = showData[i].data[1]; float value = showData[i].data[1];
float pX = seriesHig[i] + coordinateX + xAxis.runtimeZeroXOffset + yAxis.axisLine.width; float pX = seriesHig[i] + coordinateX + xAxis.runtimeZeroXOffset + yAxis.axisLine.width;
float pY = coordinateY + +i * categoryWidth; float pY = coordinateY + +i * categoryWidth;
@@ -59,12 +61,13 @@ namespace XCharts
if (isPercentStack) if (isPercentStack)
{ {
valueTotal = GetSameStackTotalValue(serie.stack, i); valueTotal = GetSameStackTotalValue(serie.stack, i);
barHig = value / valueTotal * coordinateWidth; barHig = valueTotal != 0 ? (value / valueTotal * coordinateWidth) : 0;
seriesHig[i] += barHig; seriesHig[i] += barHig;
} }
else else
{ {
valueTotal = xAxis.runtimeMaxValue - xAxis.runtimeMinValue; valueTotal = xAxis.runtimeMaxValue - xAxis.runtimeMinValue;
if (valueTotal != 0)
barHig = (xAxis.runtimeMinValue > 0 ? value - xAxis.runtimeMinValue : value) barHig = (xAxis.runtimeMinValue > 0 ? value - xAxis.runtimeMinValue : value)
/ valueTotal * coordinateWidth; / valueTotal * coordinateWidth;
seriesHig[i] += barHig; seriesHig[i] += barHig;
@@ -158,6 +161,8 @@ namespace XCharts
{ {
seriesHig.Add(0); seriesHig.Add(0);
} }
var serieData = showData[i];
serieData.canShowLabel = true;
float value = showData[i].data[1]; float value = showData[i].data[1];
float pX = coordinateX + i * categoryWidth; float pX = coordinateX + i * categoryWidth;
float zeroY = coordinateY + yAxis.runtimeZeroYOffset; float zeroY = coordinateY + yAxis.runtimeZeroYOffset;
@@ -169,12 +174,13 @@ namespace XCharts
if (isPercentStack) if (isPercentStack)
{ {
valueTotal = GetSameStackTotalValue(serie.stack, i); valueTotal = GetSameStackTotalValue(serie.stack, i);
barHig = value / valueTotal * coordinateHeight; barHig = valueTotal != 0 ? (value / valueTotal * coordinateHeight) : 0;
seriesHig[i] += barHig; seriesHig[i] += barHig;
} }
else else
{ {
valueTotal = yAxis.runtimeMaxValue - yAxis.runtimeMinValue; valueTotal = yAxis.runtimeMaxValue - yAxis.runtimeMinValue;
if (valueTotal != 0)
barHig = (yAxis.runtimeMinValue > 0 ? value - yAxis.runtimeMinValue : value) barHig = (yAxis.runtimeMinValue > 0 ? value - yAxis.runtimeMinValue : value)
/ valueTotal * coordinateHeight; / valueTotal * coordinateHeight;
seriesHig[i] += barHig; seriesHig[i] += barHig;