pdfsharp 3系列组合图

时间:2017-08-30 09:07:23

标签: charts pdfsharp

我想创建一个包含三(3)个系列的组合图表:2个条形图和1个折线图,右边的第二个y轴用于折线图。

不幸的是,当我试图建立这种特殊类型的图表时,我的代码会抛出一个错误。如果我创建一个包含3个相同系列的图表,或者包含1个条形图和1个折线图的图表,则代码可以正常工作。

有什么线索吗?

我的图表代码如下:

        Chart chart5 = new Chart();

        dt = GetChartData();

        string[] labels_Series = new string[dt.Rows.Count];
        double[] Series1 = new double[dt.Rows.Count];
        double[] Series2 = new double[dt.Rows.Count];
        double[] Series3 = new double[dt.Rows.Count];

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            labels_Series[i] = dt.Rows[i][0].ToString();
            Series1[i] = Convert.ToDouble(dt.Rows[i][1]);
            Series2[i] = Convert.ToDouble(dt.Rows[i][2]);
            Series3[i] = Convert.ToDouble(dt.Rows[i][3]);
        }

        Series chart5series1 = chart5.SeriesCollection.AddSeries();
        chart5series1.ChartType = ChartType.Column2D;
        chart5series1.Add(Series1);
        chart5series1.FillFormat.Color = Color.DarkBlue; 


        Series chart5series2 = chart5.SeriesCollection.AddSeries();
        chart5series2.ChartType = ChartType.Column2D;
        chart5series2.Add(Series2);
        chart5series2.FillFormat.Color = Color.LightBlue;

        Series chart5series3 = chart5.SeriesCollection.AddSeries();
        chart5series3.ChartType = ChartType.Line;
        chart5series3.Add(Series3);
        chart5series3.LineFormat.Color = Color.DarkGray;


        chart5.XAxis.MajorTickMark = TickMarkType.Outside;

        chart5.YAxis.MajorTickMark = TickMarkType.Outside;
        chart5.YAxis.HasMajorGridlines = false;

        chart5.ZAxis.MajorTickMark = TickMarkType.Outside;
        chart5.ZAxis.HasMajorGridlines = false;

        chart5.Legend.Docking = DockingType.Bottom;

        chart5.DataLabel.Type = DataLabelType.Value;
        chart5.DataLabel.Position = DataLabelPosition.InsideEnd;


        ChartFrame chartFrame5 = new ChartFrame();
        chartFrame5.Location = new XPoint(505, 300);
        chartFrame5.Size = new XSize(450, 250);
        chartFrame5.Add(chart5);

        chartFrame5.Draw(graph);

0 个答案:

没有答案