Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从控制台应用程序基于DataTable绘制图表?_C#_Windows_Charts - Fatal编程技术网

C# 如何从控制台应用程序基于DataTable绘制图表?

C# 如何从控制台应用程序基于DataTable绘制图表?,c#,windows,charts,C#,Windows,Charts,如何在控制台应用程序中使用System.Windows.Forms.DataVisualization.Charting.Chart绘制图形并将其保存到文件 //populate dataset with some demo data.. DataSet dataSet = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("Name", typeof(str

如何在控制台应用程序中使用System.Windows.Forms.DataVisualization.Charting.Chart绘制图形并将其保存到文件

        //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);
将此声明添加到类的顶部:

       using System.Windows.Forms.DataVisualization.Charting;
在0和2pi之间绘制sin(x)

您必须将“System.Windows.Forms.DataVisualization.dll”和“System.Drawing.dll”添加到项目中

祝你好运:)

//
//图表
//
System.Windows.Forms.DataVisualization.Charting.Chart Chart=新建System.Windows.Forms.DataVisualization.Charting.Chart();
图表尺寸=新系统图纸尺寸(640320);
图表。图表区域。添加(“图表区域1”);
图表。图例。添加(“图例1”);
//图{sin(x),0,2pi}
图.系列.添加(“sin”);
图表系列[“sin”]。LegendText=“sin(x)”;
chart.Series[“sin”].ChartType=System.Windows.Forms.DataVisualization.Charting.SerieChartType.Spline;
对于(双x=0;x<2*Math.PI;x+=0.01)
{
chart.Series[“sin”].Points.AddXY(x,Math.sin(x));
}
//保存sin_0_2pi.png图像文件
chart.SaveImage(“sin_0_2pi.png”,System.Drawing.Imaging.ImageFormat.png);

这是一个简单的控制台应用程序的伟大答案。作为一个noob,我一开始有点麻烦(我使用的是VB.net)。当我放置Imports System.Windows.Forms.DataVisualization.Charting时,它会抱怨没有可导出的成员。我必须在我的项目中添加一个引用,并在Assemblies->Extensions下找到它。一旦我有了这个引用,我就可以毫不费力地添加Import/Using语句。我还需要导入
System.Windows.Forms
@mlhDev您可以将
System.Windows.Forms.dll
添加到您的项目中,然后使用
System.Windows.Forms
命名空间!很好的独立示例。
        // 
        // chart
        //
        System.Windows.Forms.DataVisualization.Charting.Chart chart = new System.Windows.Forms.DataVisualization.Charting.Chart(); 
        chart.Size = new System.Drawing.Size(640, 320);
        chart.ChartAreas.Add("ChartArea1");
        chart.Legends.Add("legend1");

        // Plot {sin(x), 0, 2pi} 
        chart.Series.Add("sin");
        chart.Series["sin"].LegendText = "Sin(x)";
        chart.Series["sin"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;

        for (double x = 0; x < 2 * Math.PI; x += 0.01)
        {
            chart.Series["sin"].Points.AddXY(x, Math.Sin(x));
        }

        // Save sin_0_2pi.png image file
        chart.SaveImage("sin_0_2pi.png", System.Drawing.Imaging.ImageFormat.Png);