Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
385 views
in Technique[技术] by (71.8m points)

c# - How to draw Chart based on DataTable from console application?

How to use System.Windows.Forms.DataVisualization.Charting.Chart inside console application to draw an graph and save it to file?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
        //populate dataset with some demo data..
        DataSet dataSet = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add("Name", typeof(string));
        dt.Columns.Add("Counter", typeof(int));
        DataRow r1 = dt.NewRow();
        r1[0] = "Demo";
        r1[1] = 8;
        dt.Rows.Add(r1);
        DataRow r2 = dt.NewRow();
        r2[0] = "Second";
        r2[1] = 15;
        dt.Rows.Add(r2);
        dataSet.Tables.Add(dt);


        //prepare chart control...
        Chart chart = new Chart();
        chart.DataSource = dataSet.Tables[0];
        chart.Width = 600;
        chart.Height = 350;
        //create serie...
        Series serie1 = new Series();
        serie1.Name = "Serie1";
        serie1.Color = Color.FromArgb(112, 255, 200);
        serie1.BorderColor = Color.FromArgb(164, 164, 164);
        serie1.ChartType = SeriesChartType.Column;
        serie1.BorderDashStyle = ChartDashStyle.Solid;
        serie1.BorderWidth = 1;
        serie1.ShadowColor = Color.FromArgb(128, 128, 128);
        serie1.ShadowOffset = 1;
        serie1.IsValueShownAsLabel = true;
        serie1.XValueMember = "Name";
        serie1.YValueMembers = "Counter";
        serie1.Font = new Font("Tahoma", 8.0f);
        serie1.BackSecondaryColor = Color.FromArgb(0, 102, 153);
        serie1.LabelForeColor = Color.FromArgb(100, 100, 100);
        chart.Series.Add(serie1);
        //create chartareas...
        ChartArea ca = new ChartArea();
        ca.Name = "ChartArea1";
        ca.BackColor = Color.White;
        ca.BorderColor = Color.FromArgb(26, 59, 105);
        ca.BorderWidth = 0;
        ca.BorderDashStyle = ChartDashStyle.Solid;
        ca.AxisX = new Axis();
        ca.AxisY = new Axis();
        chart.ChartAreas.Add(ca);
        //databind...
        chart.DataBind();
        //save result...
        chart.SaveImage(@"c:myChart.png", ChartImageFormat.Png);

Add this declaration on top of your class:

       using System.Windows.Forms.DataVisualization.Charting;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...