2011-03-15 8 views
15

¿Alguien tiene un buen enlace para obtener instrucciones sobre cómo hacer un gráfico básico con el control de gráfico incorporado de Microsoft?¿Cómo puedo usar system.web.ui.datavisualization.charting.chart para hacer un gráfico?

Me gustaría hacer un gráfico de barras apiladas, si pudiera. Pero, en su defecto, un gráfico de barras normal sería suficiente. Todos los datos del gráfico son el resultado de una única llamada SQL (un conjunto de resultados, 1 columna de etiquetas y 3 columnas de datos, si eso marca alguna diferencia).

Mi google-fu me está fallando. Gracias por adelantado.

Respuesta

15

Mi google-fu resultó estas dos guías que he usado antes :-)

MS Chart ASP.Net Part 1

MS Chart ASP.Net Part 2

HTH

+0

Gracias. La información que necesitaba estaba en la Parte 2. – BoltBait

+0

Glade ¡Podría ayudarlo! ¡Diviértete con tu proyecto! –

+1

Enlaces a dead now :( –

25

Algo que el artículo kesun dejado fuera estaba generando la tabla en el código:

Aquí hay un ejemplo rápido que cubre la mayoría de las opciones.

Chart c = new Chart(); 
c.AntiAliasing = AntiAliasingStyles.All; 
c.TextAntiAliasingQuality = TextAntiAliasingQuality.High; 
c.Width = 640; //SET HEIGHT 
c.Height = 480; //SET WIDTH 

ChartArea ca = new ChartArea(); 
ca.BackColor = Color.FromArgb(248, 248, 248); 
ca.BackSecondaryColor = Color.FromArgb(255, 255, 255); 
ca.BackGradientStyle = GradientStyle.TopBottom; 

ca.AxisY.IsMarksNextToAxis = true; 
ca.AxisY.Title = "Gigabytes Used"; 
ca.AxisY.LineColor = Color.FromArgb(157, 157, 157); 
ca.AxisY.MajorTickMark.Enabled = true; 
ca.AxisY.MinorTickMark.Enabled = true; 
ca.AxisY.MajorTickMark.LineColor = Color.FromArgb(157, 157, 157); 
ca.AxisY.MinorTickMark.LineColor = Color.FromArgb(200, 200, 200); 
ca.AxisY.LabelStyle.ForeColor = Color.FromArgb(89, 89, 89); 
ca.AxisY.LabelStyle.Format = "{0:0.0}"; 
ca.AxisY.LabelStyle.IsEndLabelVisible = false; 
ca.AxisY.LabelStyle.Font = new Font("Calibri", 4, FontStyle.Regular); 
ca.AxisY.MajorGrid.LineColor = Color.FromArgb(234, 234, 234); 

ca.AxisX.IsMarksNextToAxis = true; 
ca.AxisX.LabelStyle.Enabled = false; 
ca.AxisX.LineColor = Color.FromArgb(157, 157, 157); 
ca.AxisX.MajorGrid.LineWidth = 0; 
ca.AxisX.MajorTickMark.Enabled = true; 
ca.AxisX.MinorTickMark.Enabled = true; 
ca.AxisX.MajorTickMark.LineColor = Color.FromArgb(157, 157, 157); 
ca.AxisX.MinorTickMark.LineColor = Color.FromArgb(200, 200, 200); 

c.ChartAreas.Add(ca); 

Series s = new Series(); 
s.Font = new Font("Lucida Sans Unicode", 6f); 
s.Color = Color.FromArgb(215, 47, 6); 
s.BorderColor = Color.FromArgb(159, 27, 13); 
s.BackSecondaryColor = Color.FromArgb(173, 32, 11); 
s.BackGradientStyle = GradientStyle.LeftRight; 

int i = 0; 
foreach (DataRow dr in sourceData.Rows) 
{ 
    DataPoint p = new DataPoint(); 
    p.XValue = i; 
    p.YValues = new Double[] { Convert.ToDouble(dr[0]) }; 
    s.Points.Add(p); 
    i++; 
} 

c.Series.Add(s); 

c.SaveImage(Server.MapPath("~/output.png"), ChartImageFormat.Png); 

Esto da salida a un archivo, pero se podría escribir esto en un HttpHandler y escribir directamente a la secuencia de respuesta.

+0

Gracias. Elegí la respuesta de kesun porque la información que necesitaba estaba en el segundo enlace. Me proporcionó información útil. Pero, para ahorrar tiempo, simplemente hice todo en el entorno de desarrollo – BoltBait

+0

Gracias, ¡Muy buena respuesta! – Dani

+0

¿Qué espacio de nombres usar para 'Color'? – IAbstract

Cuestiones relacionadas