Zedgraph - 将X轴从点更改为频率

时间:2014-03-26 14:42:03

标签: frequency zedgraph

我有一个工作程序,我可以在Zedgraph中添加一个数组并在表单中显示。 现在我只想将x轴的显示从点(0..400)更改为频率(9e3..6e9 Hz)。 以下是我目前正在运作的职能:

public void AddGraph(double[] Values, string LegendName)
{
    int i = 0;
    PointPairList list = new PointPairList();

    for (i = 0; i < Values.Length; i++)
    {
        list.Add(i, Values[i]);
    }

    if (i > MaxXAxis)
        MaxXAxis = i;

    SList.Add(list);
    SListColor.Add(Color.Black);
    }
    SListName.Add(LegendName);
}


public void ShowDiagram(string Title, string XAxisName, string YAxisName, 
                         int Timeout_ms)
    {
        ZedGraph.ZedGraphControl zgc = new ZedGraphControl();
        GraphPane myPane = zgc.GraphPane;

        LineItem myCurve = null;

        // Set the titles and axis labels
        myPane.Title.Text = Title;
        myPane.XAxis.Title.Text = XAxisName;
        myPane.YAxis.Title.Text = YAxisName;

        for (int i = 0; i < SList.Count(); i++)
        {
            myCurve = myPane.AddCurve(SListName[i], SList[i], SListColor[i], 
                      SymbolType.None);
            myCurve.Line.Width = 2;
        }

        // Add gridlines to the plot, and make them gray
        myPane.XAxis.MinorGrid.IsVisible = true;
        myPane.YAxis.MinorGrid.IsVisible = true;
        myPane.XAxis.MinorGrid.Color = Color.LightGray;
        myPane.YAxis.MinorGrid.Color = Color.LightGray;
        myPane.XAxis.MinorGrid.DashOff = 0;
        myPane.YAxis.MinorGrid.DashOff = 0;

        myPane.XAxis.MajorGrid.IsVisible = true;
        myPane.YAxis.MajorGrid.IsVisible = true;
        myPane.XAxis.MajorGrid.Color = Color.Gray;
        myPane.YAxis.MajorGrid.Color = Color.Gray;
        myPane.XAxis.MajorGrid.DashOff = 0;
        myPane.YAxis.MajorGrid.DashOff = 0;

        // Move Legend to bottom
        myPane.Legend.Position = LegendPos.Bottom;

        zgc.AxisChange();

        myPane.XAxis.Scale.Max = MaxXAxis;

        zgc.Location = new Point(0, 0);
        zgc.Size = new Size(panel_diagramm.ClientRectangle.Width, panel_diagramm.ClientRectangle.Height);

        panel_diagramm.Controls.Add(zgc);


    }

如何更改上面显示x轴频率的两个函数?

我已经尝试更改AddGraph函数以传递所需的参数并计算列表以获得正确的值。但那么......?

public void AddGraph_Frequency(int **Points**, double **StartFrequency**, 
double **StopFrequency**, double[] Values, string GraphColor, string LegendName)

{
...
double frequency = StartFrequency; //der erste Punkt
double Intervall = (StopFrequency - StartFrequency) / Points; 
for (i = 0; i < Points; i++)
{
    list.Add(frequency, Values[i]);
    frequency = frequency + Intervall;
}

....
}

感谢您的帮助 最好的问候

1 个答案:

答案 0 :(得分:0)

解决。 失踪的是:

myPane.XAxis.Scale.Max = Stopfrequency;
myPane.XAxis.Scale.Min = Startfrequency;