VB .NET快速折线图在绘图数据的左侧和右侧显示较大的空白区域

问题描述

在所示的示例中,在绘图数据的150个点的左侧和右侧有150个x轴不需要的空间点(中间)。仅使用了图表的1/3。

我为24个函数(即水平线)中的每一个绘制了150个点,但是图形x轴的宽度为450点,在绘制的150个点的左侧和右侧分别有150个空的x轴点。

目标是使用所有x轴显示150个绘图点。

我尝试设置AxisX.IntervalAutoMode。固定和可变,但这只会更改x轴显示的数字,而不会更改绘制的数据。

enter image description here

这是绘制的子例程........

' Erase prevIoUs chart:
if IS_CHART_PER_FREQ
    For f = first_freq_index to end_freq_index                                          '''''''''''   F R E Q   R A N G E   '''''''''''''''''''
        Me.Chart_antenna_window.Series( present_series_name & "_I" & f ).Points.clear()   
        Me.Chart_antenna_window.Series( present_series_name & "_Q" & f ).Points.clear()   
    next
End If


. . .

   ' Plot all the points in Zoom window for a graph in multiple or scatterframe mode.
Sub plot_zoom_samples( initial_zoom_index,final_zoom_index )
    dim zoom_sample_index as integer
    dim zoom_freq_index as integer
    dim sample_X as integer

    IF present_graph_mode = "SCATTER OF MULTIPLE FRAMES"
        ' For each frame of a multiple frame mode window:
        for zoom_sample_index = initial_zoom_index to final_zoom_index
            sample_X = graph_sample_X( zoom_sample_index )
            ' For scatter graph,plot point's x,y is I,Q:
            Me.Chart_antenna_window.Series( present_series_name & "_I" & zoom_freq_index).Points.AddXY( graph_sample_I( zoom_sample_index  ),graph_sample_Q( zoom_sample_index  ))
            zoom_freq_index += 1
            ' Wraparound after frame's set of freqs:   ie. Done with all frame's freqs?
            if zoom_freq_index = std.freqs_per_frame 
                zoom_freq_index = 0                 ' first freq of next frame
            End If
            ' Track X-axis min and max,for display of X-axis spread:
            IF sample_X < minimum_sample_X
                minimum_sample_X = sample_X
            End If
            IF sample_X > maximum_sample_X
                maximum_sample_X = sample_X
            End If
        next
    ELSE       ' NON-SCATTER,IE. MULTIPLE FRAME MODE:
        ' For each frame of a multiple frame mode window:
        for zoom_sample_index = initial_zoom_index to final_zoom_index
            sample_X = graph_sample_X( zoom_sample_index )
            ' Plot sample for each freq at same x-axis sample point:
            ' For all graphs other than scatter,their is I plot point and Q plot point,both: x,y is sampling index (ie. frame index),I | Q:
            Me.Chart_antenna_window.Series( present_series_name & "_I" & zoom_freq_index).Points.AddXY( sample_X,graph_sample_I( zoom_sample_index  ))
            Me.Chart_antenna_window.Series( present_series_name & "_Q" & zoom_freq_index).Points.AddXY( sample_X,for display of X-axis spread:
            IF sample_X < minimum_sample_X
                minimum_sample_X = sample_X
            End If
            IF sample_X > maximum_sample_X
                maximum_sample_X = sample_X
            End If
        next
    END IF
End sub

解决方法

我忘了这样做:...

Me.Chart_antenna_window.ChartAreas(“ ChartArea1”)。AxisX.Maximum = maximum_sample_X
Me.Chart_antenna_window.ChartAreas(“ ChartArea1”)。AxisX.Minimum = minimum_sample_X