controles de tabla de ASP.NET - ¿Cómo puedo crear este gráfico de barras?
-
30-09-2019 - |
Pregunta
¿Tienes un control de gráfico Quiero hacer de una tabla de datos.
las miradas de mesa como esta:
alt text http://www.freeimagehosting.net/uploads/5d02ce1558.png
la tabla quiero tendrá este aspecto:
'''
''''
''''' '' '
''''' '' '
ECCTMP ECCTMP ECCTMP
Monday Tuesday Wednesday
Espero que esto tenga sentido para cada día de su agrupan B y el tipo (correo electrónico, llamadas).
Estoy seguro de cómo ahora se databind?
Billy
Solución
Si usted está buscando para la serie de grupo en un gráfico de barras a continuación, tendrá que utilizar el Chart.DataBindTable método (MSDN).
Sólo tiene que añadir el siguiente código:
Chart1.DataBindTable(IEtable, "Day");
Esto producirá un gráfico que se ve algo como lo siguiente:
Aquí hay algo de código ficticio para su uso como una prueba:
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");
También es posible tener las etiquetas aparecen como usted la describe con ECCTMP pero añadiendo una leyenda probablemente se verá más limpio.
Otros consejos
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's 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"));
}
}