You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Aspose.Words .Net实现折线图非连续系列最新值展示的问题咨询

问题原因

你当前代码失效的核心原因是:传入带NaN的Y值数组时,NaN对应的图表点默认会被标记为不渲染,你直接使用原始数组索引挂载的标签会随隐藏点一起不显示,导致标签看不到。

修改方案

1. 补充空值渲染配置

在图表初始化逻辑中新增空值显示规则,保证非连续数据的有效点可被正常渲染:

// 原有初始化代码不变,新增以下配置
chart.DisplayBlanksAs = DisplayBlanksAs.Gap;

2. 重构标签添加逻辑

不要直接使用原始数组索引添加标签,改为遍历系列渲染后的点集合,从后往前查找首个有效点后再挂载标签:

// 原有添加系列的代码不变,替换标签添加部分的逻辑
for (int seriesIdx = 0; seriesIdx < chart.Series.Count; seriesIdx++)
{
    var currentSeries = chart.Series[seriesIdx];
    ChartDataPointCollection dataPoints = currentSeries.DataPoints;
    int lastValidIndex = -1;

    // 从后往前查找第一个Y值有效的点
    for (int i = dataPoints.Count - 1; i >= 0; i--)
    {
        double yVal = dataPoints[i].YValue;
        if (!double.IsNaN(yVal) && !double.IsInfinity(yVal))
        {
            lastValidIndex = i;
            break;
        }
    }

    // 给有效点添加标签
    if (lastValidIndex != -1)
    {
        ChartDataLabel label = currentSeries.DataLabels.Add(lastValidIndex);
        label.ShowValue = true;
        // 可选配置:调整标签位置避免遮挡
        label.Position = LegendDataLabelPosition.Right;
    }
}

如果仅需要给最后一个系列添加最新值标签,保留你原来的var array = chart.Series.Count - 1逻辑,仅替换上述的索引查找和标签添加逻辑即可。

内容的提问来源于stack exchange,提问作者Renan Rosa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:09:04