DotNet · 2022年3月30日

c mschart控件使用方法汇总(一些基础用法)

c mschart控件使用方法汇总(附统计图)

c# ms chart 控件使用方法

第一个简单的chart:创建曲线图

chart1.Series.Clear();

Series series =
new Series(“Spline”);

series.ChartType
= SeriesChartType.Spline;

series.BorderWidth
= 3;

series.ShadowOffset
= 2;

// Populate new
series with data

series.Points.AddY(67);

series.Points.AddY(57);

series.Points.AddY(83);

series.Points.AddY(23);

series.Points.AddY(70);

series.Points.AddY(60);

series.Points.AddY(90);

series.Points.AddY(20);

// Add series
into the chart’s series collection

chart1.Series.Add(series);

同时显示2条曲线

// Populate
series with random data

Random random =
new Random();

for (int
pointIndex = 0; pointIndex < 10;pointIndex++)

{

Chart1.Series[“Series1”].Points.AddY(random.Next(45,
95));

Chart1.Series[“Series2”].Points.AddY(random.Next(5,
75));

}

// Set series
chart type

Chart1.Series[“Series1”].ChartType
= SeriesChartType.Line;

Chart1.Series[“Series2”].ChartType
= SeriesChartType.Spline;

// Set point
labels

Chart1.Series[“Series1”].IsValueShownAsLabel
= true;

Chart1.Series[“Series2”].IsValueShownAsLabel
= true;

// Enable X axis
margin

Chart1.ChartAreas[“ChartArea1”].AxisX.IsMarginVisible
= true;

// Enable 3D,
and show data point marker lines

Chart1.ChartAreas[“ChartArea1”].Area3DStyle.Enable3D
= true;

Chart1.Series[“Series1”][“ShowMarkerLines”]
= “True”;

Chart1.Series[“Series2”][“ShowMarkerLines”]
= “True”;

显示column类型图,柱状图

// Create new
data series and set it’s visual attributes

Chart1.Series‎‎.Clear();

Series series =
new Series(“FlowRead”);

series.ChartType
= SeriesChartType.Column;

series.BorderWidth
= 3;

series.ShadowOffset
= 2;

// Populate new
series with data

series.Points.AddY(67);

series.Points.AddY(57);

series.Points.AddY(83);

series.Points.AddY(23);

series.Points.AddY(70);

series.Points.AddY(60);

series.Points.AddY(90);

series.Points.AddY(20);

// Add series
into the chart’s series collection

Chart1.Series.Add(series);

很多点,效率还可以

// Fill series
data

double yValue =
50.0;

Random random =
new Random();

for (int
pointIndex = 0; pointIndex < 20000;pointIndex++)

{

yValue = yValue
+ (random.NextDouble() * 10.0 – 5.0);

Chart1.Series[“Series1”].Points.AddY(yValue);

}

// Set fast line
chart type

Chart1.Series[“Series1”].ChartType
= SeriesChartType.FastLine;

}

日期,xy类型

// Create a new
random number generator

Random rnd = new
Random();

// Data points X
value is using current date

DateTime date =
DateTime.Now.Date;

// Add points to
the stock chart series

for (int index =
0; index < 10; index++)

{

Chart1.Series[“Series1”].Points.AddXY(

date, // X value
is a date

rnd.Next(40,50));
//Close Y value

// Add 1 day to
our X value

date =
date.AddDays(1);

}

int-int的xy数据绘图

// Create a new
random number generator

Random rnd = new
Random();

// Add points to
the stock chart series

for (int index =
0; index < 10; index++)

{

Chart1.Series[“Series1”].Points.AddXY(

rnd.Next(10,90),
// X value is a date

rnd.Next(40,50));
//Close Y value

}

数据库数据,datetime-int类型

Chart1.Series.Clear();

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “select 时间,序号 from pub_log_read order by 序号 asc”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.DataBindTable(dr,
“时间”);

dr.Close();

数据库数据2,string-int类型

Chart1.Series.Clear();

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “select 账号,count(账号) as 次数 from pub_log_read group by 账号 order by 账号
asc”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.DataBindTable(dr,
“账号”);

dr.Close();

数据库绑定3-string-int型

Chart1.Series.Clear();

Chart1.Series.Add(“Series1”);

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

cmd.CommandText
= “select 账号,count(账号) as 次数 from pub_log_read group by 账号 order

by 账号 asc”;

conn.Open();

DataSet ds = new
DataSet();

OleDbDataAdapter
da = new OleDbDataAdapter();

da.SelectCommand
= cmd;

da.Fill(ds,
“tbscore”);

Chart1.DataSource
= ds;

Chart1.Series[“Series1”].XValueMember
= “账号”;

Chart1.Series[“Series1”].YValueMembers
= “次数”;

// Data bind to
the selected data source

Chart1.DataBind();

conn.Close();

数据库4,只绑定y

Chart1.Series.Clear();

Chart1.Series.Add(“序号”);

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “select 序号 from pub_log_read order by 序号 asc”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.Series[0].Points.DataBindY(dr);

dr.Close();

数据库5,绑定xy

Chart1.Series.Clear();

Chart1.Series.Add(“序号”);

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “select 账号,count(账号) as 次数 from pub_log_read group by 账号 order by 账号
desc”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.Series[0].Points.DataBindXY(dr,”账号”,dr,”次数”);

dr.Close();

数据库6,支持显示参数

Chart1.Series.Clear();

Chart1.Series.Add(“S1”);

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “SELECT * FROM REPSALES WHERE Year=2004”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.Series[0].Points.DataBind(dr,
“name”, “sales”, “Tooltip=Year,
Label=Commissions{C2}”);

dr.Close();

数据库7,支持多line

Chart1.Series.Clear();

Chart1.Series.Add(“S1”);

OleDbConnection
conn = new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=” +

Application.StartupPath
+ @”\db.mdb” + “;Persist Security Info=False”);

OleDbCommand cmd
= conn.CreateCommand();

conn.Open();

cmd.CommandText
= “SELECT * FROM REPSALES”;

//DataSet ds =
new DataSet();

//OleDbDataAdapter
da = new OleDbDataAdapter();

//da.SelectCommand
= cmd;

//da.Fill(ds,
“tbscore”);

OleDbDataReader
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

Chart1.DataBindCrossTable(dr,
“Name”, “Year”, “Sales”,
“Label=Commissions{C}”);

dr.Close();

数据库8,按照行添加数据

// Resolve the
address to the Access database

stringfileNameString
= this.MapPath(“.”);

fileNameString
+= “..\\..\\..\\data\\chartdata.mdb”;

//Initialize a
connectionstring

stringmyConnectionString
= “PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=” + fileNameString;

// Definethe
databasequery

stringmySelectQuery=”SELECT
* FROM SALESCOUNTS;”;

// Createa
database connection object using the connectionstring

OleDbConnection
myConnection = newOleDbConnection(myConnectionString);

// Create
adatabase command on the connection usingquery

OleDbCommandmyCommand
= new OleDbCommand(mySelectQuery, myConnection);

// Open
theconnection

myCommand.Connection.Open();

//Initializes a
new instance of the OleDbDataAdapter class

OleDbDataAdapter
myDataAdapter = new OleDbDataAdapter();

myDataAdapter.SelectCommand
= myCommand;

//Initializes a
new instance of the DataSet class

DataSetmyDataSet
= new DataSet();

// Addsrows in
the DataSet

myDataAdapter.Fill(myDataSet,”Query”);

foreach(DataRow
row in myDataSet.Tables[“Query”].Rows)

{

// For each Row
add a new series

string
seriesName = row[“SalesRep”].ToString();

Chart1.Series.Add(seriesName);

Chart1.Series[seriesName].ChartType
= SeriesChartType.Line;

Chart1.Series[seriesName].BorderWidth
= 2;

for(int colIndex
= 1; colIndex <myDataSet.Tables[“Query”].Columns.Count;
colIndex++)

{

// For each
column (column 1 and onward) add the value as apoint

string
columnName =myDataSet.Tables[“Query”].Columns[colIndex].ColumnName;

int YVal = (int)
row[columnName];

Chart1.Series[seriesName].Points.AddXY(columnName,
YVal);

}

}

DataGrid.DataSource
= myDataSet;

DataGrid.DataBind();

// Closesthe
connection to the data source. This is the preferred

// method
ofclosing any open connection.

myCommand.Connection.Close();

使用xml数据

// resolve the
address to the XML document

stringfileNameString
= this.MapPath(“.”);

stringfileNameSchema
= this.MapPath(“.”);

fileNameString
+= “..\\..\\..\\data\\data.xml”;

fileNameSchema
+= “..\\..\\..\\data\\data.xsd”;

//Initializes a
new instance of the DataSet class

DataSetcustDS =
new DataSet();

// Read
XMLschema into the DataSet.

custDS.ReadXmlSchema(
fileNameSchema );

// ReadXML
schema and data into the DataSet.

custDS.ReadXml(
fileNameString );

//Initializes a
new instance of the DataView class

DataViewfirstView
= new DataView(custDS.Tables[0]);

// Sincethe
DataView implements and IEnumerable, pass the reader directlyinto

//
theDataBindTable method with the name of the column used for the Xvalue.

Chart1.DataBindTable(firstView,
“Name”);

使用excel数据

// resolve the
address to the Excel file

stringfileNameString
= this.MapPath(“.”);

fileNameString
+= “..\\..\\..\\data\\ExcelData.xls”;

//
Createconnection object by using the preceding connection string.

string sConn=
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” +

fileNameString +
“;Extended Properties=”Excel8.0;HDR=YES””;

OleDbConnection
myConnection = new OleDbConnection( sConn );

myConnection.Open();

// Thecode to
follow uses a SQL SELECT command to display the data fromthe worksheet.

// Createnew
OleDbCommand to return data from worksheet.

OleDbCommandmyCommand
= new OleDbCommand( “Select * From [data1$A1:E25]”,myConnection );

// createa databasereader

OleDbDataReader
myReader

=myCommand.ExecuteReader(CommandBehavior.CloseConnection);

//Populate the
chart with data in the file

Chart1.DataBindTable(myReader,
“HOUR”);

// closethe
reader and the connection

myReader.Close();

myConnection.Close();

使用csv数据

// Filename of
the CSV file

string file=
“DataFile.csv”;

// Getthe path
of the CSV file

string path=
this.MapPath(“.”);

path
+=”..\\..\\..\\data\”;

// Createa
select statement and a connection string.

stringmySelectQuery
= “Select * from ” + file;

stringConStr =
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=”+

path+
“;Extended Properties=”Text;HDR=No;FMT=Delimited””;

OleDbConnection
myConnection = new OleDbConnection(ConStr);

// Createa
database command on the connection using query

OleDbCommandmyCommand
= new OleDbCommand(mySelectQuery, myConnection);

// Openthe
connection and create the reader

myCommand.Connection.Open();

OleDbDataReader
myReader

=myCommand.ExecuteReader(CommandBehavior.CloseConnection);

// Column1 is a
time value, column 2 is a double

// Databindthe
reader to the chart using the DataBindXY method

Chart1.Series[0].Points.DataBindXY(myReader,
“1”, myReader,”2″);

//
Closeconnection and data reader

myReader.Close();

myConnection.Close();

数组绘图

// Initialize an
array of doubles

double[] yval =
{ 2, 6, 4, 5, 3 };

// Initialize an
array of strings

string[] xval =
{ “Peter”, “Andrew”, “Julie”, “Mary”,
“Dave” };

// Bind the
double array to the Y axis points of the Default dataseries

Chart1.Series[“Series1”].Points.DataBindXY(xval,
yval); 数据库9,dataview// Resolve the address to the Access database

stringfileNameString
= this.MapPath(“.”);

fileNameString
+= “..\\..\\..\\data\\chartdata.mdb”;

//Initialize a
connectionstring

stringmyConnectionString
= “PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=” + fileNameString;

// Definethe
databasequery

stringmySelectQuery=”SELECT
* FROM REPS;”;

// Createa
database connection object using the connectionstring

OleDbConnection
myConnection = newOleDbConnection(myConnectionString);

// Create
adatabase command on the connection usingquery

OleDbCommandmyCommand
= new OleDbCommand(mySelectQuery, myConnection);

// Open
theconnection

myCommand.Connection.Open();

//Initializes a
new instance of the OleDbDataAdapter class

OleDbDataAdapter
custDA = new OleDbDataAdapter();

custDA.SelectCommand
= myCommand;

//Initializes a
new instance of the DataSet class

DataSetcustDS =
new DataSet();

// Addsrows in
the DataSet

custDA.Fill(custDS,
“Customers”);

//Initializes a
new instance of the DataView class

DataViewfirstView
= new DataView(custDS.Tables[0]);

// Sincethe
DataView implements IEnumerable, pass the dataview directlyinto

// the DataBind
method with thename of the Columns selected in thequery

Chart1.Series[“Default”].Points.DataBindXY(firstView,”Name”,firstView,
“Sales”);

// Closesthe
connection to the data source. This is the preferred

// method of
closing any openconnection.

myCommand.Connection.Close();

指定坐标轴的数据显示范围

// Create a new
random number generator

Random rnd = new
Random();

// Add points to
the stock chart series

for (int index =
0; index < 10; index++)

{

Chart1.Series[“Series1”].Points.AddXY(

rnd.Next(10,90),
// X value is a date

rnd.Next(40,50));
//Close Y value

}

Chart1.ChartAreas[0].AxisY.Minimum
= 40;

Chart1.ChartAreas[0].AxisY.Maximum
= 50;

数据排序// Use point
index for drawing the chart

Chart1.Series[“Series1”].IsXValueIndexed
= true;

// Sortseries
points by second Y value

Chart1.DataManipulator.Sort(PointSortOrder.Ascending,
“Y2″,”Series1”);

查找数据最大值和最小值

// Find point
with maximum Y value and change color

DataPointmaxValuePoint
=Chart1.Series[“Series1”].Points.FindMaxValue();

maxValuePoint.Color
= Color.FromArgb(255, 128, 128);

// Findpoint
with minimum Y value and change color

DataPointminValuePoint
=Chart1.Series[“Series1”].Points.FindMinValue();

minValuePoint.Color
= Color.FromArgb(128, 128, 255); pie显示交互

private void
Page_Load(object sender, System.EventArgs e) {

// Addseries to
the chart

Seriesseries =
Chart1.Series.Add(“My series”);

// Setseries and
legend tooltips

series.ToolTip =
“#VALX: #VAL{C} million”;

series.LegendToolTip
= “#PERCENT”;

series.PostBackValue
= “#INDEX”;

series.LegendPostBackValue
= “#INDEX”;

//
Populateseries data

double[] yValues
= {65.62, 75.54, 60.45, 34.73, 85.42, 32.12, 55.18, 67.15,56.24, 23.65};

string[] xValues
= {“France”, “Canada”, “Germany”,
“USA”, “Italy”, “Russia”,”China”,
“Japan”,

“Sweden”,
“Spain” };

series.Points.DataBindXY(xValues,
yValues);

// Setseries
visual attributes

series.Type=
SeriesChartType.Pie;

series.ShadowOffset
= 2;

series.BorderColor
= Color.DarkGray;

series.CustomAttributes
= “LabelStyle=Outside”;

}

protected void
Chart1_Click(object sender, ImageMapEventArgse) {

intpointIndex =
int.Parse(e.PostBackValue);

Seriesseries =
Chart1.Series[“My series”];

if(pointIndex
>= 0 &&pointIndex < series.Points.Count)

{

series.Points[pointIndex].CustomProperties
+=”Exploded=true”;

}

}

chart点击事件///
<summary>

/// Page Load
event handler.

///
</summary>

protected void
Page_Load(object sender, System.EventArgs e) {

this.Chart1.Click
+= new ImageMapEventHandler(Chart1_Click);

// directusing
of PostBackValue

foreach(Series
series in this.Chart1.Series)

{

series.PostBackValue
= “series:” + series.Name + “,#INDEX”;

}

// transferof
click coordinates. getCoordinates is a javascriptfunction.

stringpostbackScript
=ClientScript.GetPostBackEventReference(this.Chart1,”chart:@”);

this.Chart1.Attributes[“onclick”]
= postbackScript.Replace(“@'”, “‘+ getCoordinates(event)”);

}

///
<summary>

/// Handles the
Click event of the Chart1 control.

///
</summary>

/// <param
name=”sender”>The sourceof the event.</param> /// <param

name=”e”>The<seecref=”System.Web.UI.WebControls.ImageMapEventArgs”/>instance
containing the eventdata.</param>

protected void
Chart1_Click(object sender, ImageMapEventArgse) {

this.Chart1.Titles[“ClickedElement”].Text
= “Nothing”;

string[]input =
e.PostBackValue.Split(‘:’);

if(input.Length
== 2)

{

string[]
seriesData = input[1].Split(‘,’);

if (input[0].Equals(“series”))

{

this.Chart1.Titles[“ClickedElement”].Text
= “Last Clicked Element:” + seriesData[0] + ” –

Data Point
#” + seriesData[1];

}

else if
(input[0].Equals(“chart”))

{

// hit test of X
and Y click point

HitTestResult
hitTestResult

=this.Chart1.HitTest(Int32.Parse(seriesData[0]),Int32.Parse(seriesData[1]));

if
(hitTestResult != null)

{

this.Chart1.Titles[“ClickedElement”].Text
= “Last Clicked Element:” +
hitTestResult.ChartElementType.ToString();

}

}

}

}

 

 

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞