mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 17:00:08 +00:00
修复Serie添加double.MaxValue时坐标绘制失败的问题
This commit is contained in:
@@ -70,6 +70,7 @@ slug: /changelog
|
|||||||
|
|
||||||
## master
|
## master
|
||||||
|
|
||||||
|
* (2023.12.11) 修复`Serie`添加`double.MaxValue`时坐标绘制失败的问题
|
||||||
* (2023.12.10) 增加`Serie`的`minShowLabel`可隐藏小于指定值的`label`
|
* (2023.12.10) 增加`Serie`的`minShowLabel`可隐藏小于指定值的`label`
|
||||||
* (2023.12.09) 增加`LevelStyle`的`LineStyle`和`depth`支持
|
* (2023.12.09) 增加`LevelStyle`的`LineStyle`和`depth`支持
|
||||||
* (2023.12.09) 增加`Serie`的`Link`可用于桑基图添加节点边关系
|
* (2023.12.09) 增加`Serie`的`Link`可用于桑基图添加节点边关系
|
||||||
|
|||||||
@@ -267,7 +267,11 @@ namespace XCharts
|
|||||||
|
|
||||||
if (axis.interval == 0)
|
if (axis.interval == 0)
|
||||||
{
|
{
|
||||||
if (axis.splitNumber > 0)
|
if (range >= double.MaxValue / 2)
|
||||||
|
{
|
||||||
|
tick = range / 4;
|
||||||
|
}
|
||||||
|
else if (axis.splitNumber > 0)
|
||||||
{
|
{
|
||||||
tick = range / axis.splitNumber;
|
tick = range / axis.splitNumber;
|
||||||
}
|
}
|
||||||
@@ -865,7 +869,6 @@ namespace XCharts
|
|||||||
for (int i = 0; i < size; i++)
|
for (int i = 0; i < size; i++)
|
||||||
{
|
{
|
||||||
var scaleWidth = AxisHelper.GetScaleWidth(axis, axisLength, axis.IsTime() ? i : i + 1, dataZoom);
|
var scaleWidth = AxisHelper.GetScaleWidth(axis, axisLength, axis.IsTime() ? i : i + 1, dataZoom);
|
||||||
|
|
||||||
if (axis.boundaryGap && axis.axisTick.alignWithLabel)
|
if (axis.boundaryGap && axis.axisTick.alignWithLabel)
|
||||||
current -= scaleWidth / 2;
|
current -= scaleWidth / 2;
|
||||||
|
|
||||||
|
|||||||
@@ -245,21 +245,20 @@ namespace XCharts.Runtime
|
|||||||
{
|
{
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
int num = GetScaleNumber(axis, coordinateWidth, dataZoom);
|
|
||||||
int splitNum = GetSplitNumber(axis, coordinateWidth, dataZoom);
|
|
||||||
if (num <= 0)
|
|
||||||
num = 1;
|
|
||||||
|
|
||||||
if (axis.IsTime() || axis.IsValue())
|
if (axis.IsTime() || axis.IsValue())
|
||||||
{
|
{
|
||||||
var value = axis.GetLabelValue(index);
|
var value = axis.GetLabelValue(index);
|
||||||
var lastValue = axis.GetLabelValue(index - 1);
|
var lastValue = axis.GetLabelValue(index - 1);
|
||||||
return axis.context.minMaxRange == 0 ? 0 :
|
var width = axis.context.minMaxRange == 0 ? 0 :
|
||||||
(float)(coordinateWidth * (value - lastValue) / axis.context.minMaxRange);
|
(float)(coordinateWidth * ((value - lastValue) / axis.context.minMaxRange));
|
||||||
|
return width;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int num = GetScaleNumber(axis, coordinateWidth, dataZoom);
|
||||||
|
int splitNum = GetSplitNumber(axis, coordinateWidth, dataZoom);
|
||||||
|
if (num <= 0)
|
||||||
|
num = 1;
|
||||||
var data = axis.GetDataList(dataZoom);
|
var data = axis.GetDataList(dataZoom);
|
||||||
if (axis.IsCategory() && data.Count > 0 && splitNum > 0)
|
if (axis.IsCategory() && data.Count > 0 && splitNum > 0)
|
||||||
{
|
{
|
||||||
@@ -344,7 +343,7 @@ namespace XCharts.Runtime
|
|||||||
int maxSplit = 0;
|
int maxSplit = 0;
|
||||||
maxValue = ChartHelper.GetMaxLogValue(maxValue, axis.logBase, axis.logBaseE, out maxSplit);
|
maxValue = ChartHelper.GetMaxLogValue(maxValue, axis.logBase, axis.logBaseE, out maxSplit);
|
||||||
minValue = ChartHelper.GetMinLogValue(minValue, axis.logBase, axis.logBaseE, out minSplit);
|
minValue = ChartHelper.GetMinLogValue(minValue, axis.logBase, axis.logBaseE, out minSplit);
|
||||||
|
|
||||||
var splitNumber = maxSplit + minSplit;
|
var splitNumber = maxSplit + minSplit;
|
||||||
if (splitNumber > 15)
|
if (splitNumber > 15)
|
||||||
splitNumber = 15;
|
splitNumber = 15;
|
||||||
@@ -633,7 +632,7 @@ namespace XCharts.Runtime
|
|||||||
var startX = grid.context.x + yAxis.offset;
|
var startX = grid.context.x + yAxis.offset;
|
||||||
if (yAxis.IsRight())
|
if (yAxis.IsRight())
|
||||||
startX += grid.context.width;
|
startX += grid.context.width;
|
||||||
else if (yAxis.axisLine.onZero && relativedAxis != null && relativedAxis.IsValue()
|
else if (yAxis.axisLine.onZero && relativedAxis != null && relativedAxis.IsValue()
|
||||||
&& relativedAxis.gridIndex == yAxis.gridIndex)
|
&& relativedAxis.gridIndex == yAxis.gridIndex)
|
||||||
startX += relativedAxis.context.offset;
|
startX += relativedAxis.context.offset;
|
||||||
return startX;
|
return startX;
|
||||||
|
|||||||
Reference in New Issue
Block a user