ASP.NET Chart Controls - How Do I Create This Histogram?

Got control of the chart I want to make from the data table.

the table looks like this:

alt text http://www.freeimagehosting.net/uploads/5d02ce1558.png

the chart I want will look like this:

''' '''' ''''' '' ' ''''' '' ' ECCTMP ECCTMP ECCTMP Monday Tuesday Wednesday 

I hope this makes sense for every day when it is grouped by type (email, calls).

Now I'm sure how to attach it to her?

Billy

+6
charts asp.net-charts
source share
2 answers

If you want to group a series in a histogram, you will need to use the Chart.DataBindTable (MSDN) method.

Just add the following code:

 Chart1.DataBindTable(IEtable, "Day"); 

This will result in a chart that looks something like this: alt text

Here is some dummy code to use as a test:

 DataTable table = new DataTable(); table.Columns.Add("Day", typeof(string)); table.Columns.Add("Email", typeof(int)); table.Columns.Add("Calls", typeof(int)); table.Columns.Add("Contacts", typeof(int)); table.Columns.Add("Tasks", typeof(int)); table.Columns.Add("Meetings", typeof(int)); table.Columns.Add("Proposals", typeof(int)); table.Rows.Add("Monday", 1, 3, 3, 4, 5, 5); table.Rows.Add("Tuesday", 1,6,8,2,0,3); table.Rows.Add("Wednesday", 7, 6,3,0,2,1); table.Rows.Add("Thursday", 1,5,5,9,3,1); table.Rows.Add("Friday", 4,7,3,5,2,3); //convert datatable to a IEnumerable form var IEtable = (table as System.ComponentModel.IListSource).GetList(); //Bind the datatable to the chart using the DataBindTable method Chart1.DataBindTable(IEtable, "Day"); 

It is also possible for labels to appear as you describe using ECCTMP, but adding a legend will probably look cleaner.

+5
source share
 protected void Page_Load(object sender, EventArgs e) { Title tl = new Title("Players Score Card"); tl.Font = new System.Drawing.Font("vardana",12); //chrtGroup.Titles.Add(tl); //ChartArea a = new ChartArea("players"); //a.AxisX.Title = "Player Yearwise"; //a.AxisY.Title = "Scores"; //chrtGroup.ChartAreas.Add(a); DataTable dt = new DataTable(); dt.Columns.Add("Years", typeof(int)); dt.Columns.Add("Afridi", typeof(int)); dt.Columns.Add("Akmal", typeof(int)); dt.Columns.Add("Nasir", typeof(int)); dt.Columns.Add("Shoib",typeof(int)); dt.Columns.Add("Hafiz", typeof(int)); Random rn = new Random(); for (int i = 1; i < 10; i++) { DataRow dr = dt.NewRow(); dr["Years"] = "200" +i; dr["Afridi"] = 700 + rn.Next(200,800); dr["Akmal"] = 500 + rn.Next(200,800); dr["Nasir"] = 400 + rn.Next(200,800); dr["Shoib"] = 800 + rn.Next(300,500); dr["Hafiz"] = 200 + rn.Next(200, 900); dt.Rows.Add(dr); } Series afridi = new Series("Afridi"); Series akmal = new Series("Akmal"); Series nasir = new Series("Nasir"); Series shoib = new Series("Shoib"); Series hafiz = new Series("Hafiz"); afridi.IsValueShownAsLabel = true; akmal.IsValueShownAsLabel = true; nasir.IsValueShownAsLabel = true; shoib.IsValueShownAsLabel = true; hafiz.IsValueShownAsLabel = true; foreach (DataRow r in dt.Rows) { afridi.Points.AddXY(Convert.ToDouble(r["Years"]),Convert.ToDouble(r["Afridi"])); akmal.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Akmal"])); nasir.Points.AddXY(Convert.ToDouble(r["Years"]),Convert.ToDouble(r["Nasir"])); shoib.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Shoib"])); hafiz.Points.AddXY(Convert.ToDouble(r["Years"]), Convert.ToDouble(r["Hafiz"])); } chrtGroup.Series.Add(afridi); chrtGroup.Series.Add(akmal); chrtGroup.Series.Add(nasir); chrtGroup.Series.Add(shoib); chrtGroup.Series.Add(hafiz); chrtGroup.Legends.Add(new Legend("Afridi")); chrtGroup.Legends.Add(new Legend("Akmal")); chrtGroup.Legends.Add(new Legend("Nasir")); chrtGroup.Legends.Add(new Legend("Shoib")); chrtGroup.Legends.Add(new Legend("Hafiz")); } } 
0
source share

All Articles