C# 如何从控制台应用程序基于DataTable绘制图表?
如何在控制台应用程序中使用System.Windows.Forms.DataVisualization.Charting.Chart绘制图形并将其保存到文件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
//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);