如何在图表系列中创建间隙(空点)

时间:2016-08-18 10:13:04

标签: vb.net visual-studio charts

我正在尝试使用vb图表绘制图表。缺少一些X值,我想在系列图中留下空白。即,X值从0.695,0.7,0.705开始,依此类推。但它们之间可能存在一些差距(例如:0.74,0.745,1.71,1.715),我希望将其留作差距(即0.745至1.71)。

如果有帮助的话,我能够创建一个空点数组。以下是相同的代码。

Dim interval As Double = 0.0
Dim empty(0) As Double
Dim decimalpart As Integer = 0

    interval = freq1(1) - freq1(0)
    If interval.ToString().IndexOf(".") = -1 Then
        decimalpart = 0     'No decimal part                                     
    Else
        decimalpart = interval.ToString().Substring(interval.ToString().IndexOf(".") + 1).Length    'To find the number of decimal part
    End If
    y = 0
    For i As Integer = 0 To freq1.Length - 2    'Dont need to access the last data. It would be accessed in the previous loop
        If Math.Round((freq1(i + 1) - freq1(i)), decimalpart) > interval Then
            empty(y) = freq1(i) + interval
            y += 1
            ReDim Preserve empty(y)
            While (empty(y - 1) + interval < freq1(i + 1))
                empty(y) = empty(y - 1) + interval
                y += 1
                ReDim Preserve empty(y)
            End While
        End If
    Next
    ReDim Preserve empty(y - 1)

上面的代码找到间隔,看看下一个值是否与区间范围有关。否则,它会发现使用间隔值递增的值。 freq1()是包含X轴值的数组。但是,我不确定如何使用empty()删除X轴值。 (不确定,如果可以使用Chart.Series()。EmptyPointStyle)

1 个答案:

答案 0 :(得分:0)

  

我想展示图表系列图中出现的差距。

我不打算假装你提供的代码正在做什么,但是通过将DataPoint.IsEmpty属性设置为True来实现空点的线图中的间隙。

这是一个简单的例子。

Dim s As New Series
s.ChartType = SeriesChartType.FastLine
s.Color = Color.Black
s.BorderWidth = 2

' make some points
For x As Double = 0.5 To 4 Step 0.025
    Dim dp As New DataPoint(x, (2.0 * x + 3))

    ' apply some filtering criteria to set some points to empty
    If dp.XValue >= 1.2 AndAlso dp.XValue < 1.5 Then dp.IsEmpty = True
    If dp.XValue >= 3.1 AndAlso dp.XValue < 3.4 Then dp.IsEmpty = True

    s.Points.Add(dp)

Next

Chart1.Series.Clear()
Chart1.Legends.Clear()
Chart1.Series.Add(s)

您可以阅读有关此主题的更多信息:Using Empty Data Points in Chart Controls