我想在我的折線圖中添加一條折線。當沒有要顯示的 YValue 時,我將 YValue 設定為 double.NaN。
它作業正常,除了它在圖片中看到的繪制垂直線的第一個點。我怎樣才能擺脫那個?

uj5u.com熱心網友回復:
問題中沒有代碼,但如果您在圖表系列的 Points 屬性上使用 DataBindXY 方法,它將自動與 double.NaN 一起使用,因此我假設您手動添加 DataPoints。
在這種情況下,DataPoint 的 IsEmpty 屬性必須設定為 true。因此,如果您從 x/y 值創建 DatePoints(例如,從具有實際值的兩個陣列),您可以通過檢查 y 值來相應地設定 IsEmpty 屬性:
double.IsNaN(yValue)
一個簡單的獨立示例可能如下所示:
private readonly int[] _xArr = new int[] { 1, 2, 3, 4, 5 ,6, 7 };
private readonly double[] _yArr = new double[] { double.NaN, 0.9, 1.2, double.NaN, 1.3, 1.1, 1.4 };
private IEnumerable<DataPoint> DataPoints()
{
return _xArr.Select((x, i) => new DataPoint(x, _yArr[i]) { IsEmpty = double.IsNaN(_yArr[i])});
}
為了完整起見,這里有一個用于快速測驗的簡單圖表設定:
private void Form1_Load(object sender, EventArgs e)
{
var series = chart1.Series[0];
series.LegendText = "Some Chart";
series.ChartType = SeriesChartType.Line;
series.IsValueShownAsLabel = true;
foreach(var dp in DataPoints())
{
series.Points.Add(dp);
}
}
然后,使用上面的資料,該示例將如下所示:

可以看到,這會根據需要顯示缺少的起點和中斷。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/436557.html
