ZedGraph如何使用XAxis.Type = AxisType.Text创建经典折线图

时间:2015-04-16 13:38:33

标签: c# charts linechart zedgraph linegraph

我正在尝试使用zed图创建折线图。我只是想问一下如何创建一个XAxis类型为文本且YAxis类型为双精度的折线图。

首先,我真的在搜索这个主题,但我没有得到任何结果。因为其他折线图总是关于XAxis上的日期和时间。我在XAxis上不需要日期和时间。我将使用XAxis的标签来命名YAxis上的点。

Here an Example Graph

            string[] labels = { "P(A)", "P(A)+P(T)", "P(A)+P(T)+P(G)", "P(A)+P(T)+P(G)+P(C)" };
    double[] y = { PA(), PA() + PT(), PA() + PT() + PG(), PA() + PT() + PG() + PC() };

    LineItem myLine = myPane.AddCurve("dizi 1", null, y, Color.Red);
    myLine.Line.Fill = new Fill(Color.Red, Color.White, Color.Red);

    myPane.XAxis.Scale.TextLabels = labels;
    myPane.XAxis.Type = AxisType.Text;

    myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 90F);
    myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
    zedGraphControl1.AxisChange();

****代码在上面。有什么不对吗?****

1 个答案:

答案 0 :(得分:2)

我刚想通了!

以下是创建基本折线图的示例代码!

        private void button3_Click(object sender, EventArgs e)
    {
        // generate some fake data
        double[] y = { 1, 2, 3, 9 ,1,15,3,7,2};
        string[] schools = { "A", "B", "C", "D" ,"E","F","G","H","J"};

        //generate pane
        var pane = zg1.GraphPane;


        pane.XAxis.Scale.IsVisible = true;
        pane.YAxis.Scale.IsVisible = true;

        pane.XAxis.MajorGrid.IsVisible = true;
        pane.YAxis.MajorGrid.IsVisible = true;

        pane.XAxis.Scale.TextLabels = schools;
        pane.XAxis.Type = AxisType.Text;


        //var pointsCurve;

        LineItem pointsCurve = pane.AddCurve("", null, y, Color.Black);
        pointsCurve.Line.IsVisible = true;
        pointsCurve.Line.Width = 3.0F;
         //Create your own scale of colors.

        pointsCurve.Symbol.Fill = new Fill(new Color[] { Color.Blue, Color.Green, Color.Red });
        pointsCurve.Symbol.Fill.Type = FillType.Solid;
        pointsCurve.Symbol.Type = SymbolType.Circle;
        pointsCurve.Symbol.Border.IsVisible = true;



        pane.AxisChange();
        zg1.Refresh();
        this.Controls.Add(zg1);
    }