Control para gráficos lineales con ASP.NET

Control para gráficos lineales con ASP.NET

Un gráfico o representación gráfica es un tipo de representación de datos, generalmente numéricos, mediante recursos gráficos (líneas, vectores, superficies o símbolos), para que se manifieste visualmente la relación matemática o correlación estadística que guardan entre sí.

Una gráfica lineal se utiliza para representar series de datos que han sido recolectados en un tiempo específico. Los datos se representan en una gráfica en intervalos de tiempo y se dibuja una línea conectando los puntos resultantes.

Es útil al mostrar tendencias de comportamiento de un evento o proceso (incrementos, decrementos o tendencias sin variación). Permite visualizar cambios que sufren los procesos en un período de tiempo o comparar el desempeño obtenido después de implementar una solución.

Anteriormente he publicado artículos sobre las gráficas de barras y circulares, en esta ocasión hablare sobre las gráficas lineales.

¿Cómo crear gráficas lineales con ASP.NET?

Para explicar este punto vamos utilizar un control que es muy sencillo y si alguien tiene dudas o está batallando con la implementación del mismo, escríbanme en el apartado de comentarios o de contacto y enseguida les doy respuesta.

Este control incluye las gráfica de barras que puedes ver aquí. Y lo que tienes que hacer es lo siguiente:

# 1 Descargar el Control de esta liga

# 2 Agregar el control al cuadro de herramientas.

En mi caso la voy agregar en la pestaña “General”, debe aparecer como en la siguiente imagen. (Igual si tiene dudas en este paso puede escribirme en los comentarios.)

gráfico de control libre asp.net

# 3 Arrastra el control a la página donde va a crear de la gráfica.

Aparecerá la referencia donde registra el control y así mismo el control chart

control de gráfico asp.net gratis

4 # Configuramos las Siguientes Propiedades:

    Tipográfica = "Línea". Con esto indicamos que se va a crear una gráfica circular.

    TipoAnimacion = "easeInOutElastic". Animación que tendrá la gráfica.

El código HTML quedaria de la siguiente Manera:

%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Line.aspx.vb" Inherits="Graficas.Line" %>

<%@ Register Assembly="ChartJI" Namespace="DeveloperJI.ChartJI" TagPrefix="JI" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <link href="css/estilo.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <div class="row">
            <div class="col-md-6">
                <section class="panel">
                    <header class="panel-heading ">
                        <h2 class="panel-title">Primer ejemplo
                        </h2>
                    </header>
                    <div class="panel-body" style="background: #f2f2f2">
                        <JI:Chart ID="Chart1" runat="server" TipoGrafica="Line" TipoAnimacion="easeInExpo" />
                    </div>
                </section>
            </div>
            <div class="col-md-6">
                <section class="panel">
                    <header class="panel-heading ">
                        <h2 class="panel-title">Segundo ejemplo
                        </h2>
                    </header>
                    <div class="panel-body" style="background: #f2f2f2">
                        <JI:Chart ID="Chart2" runat="server" />
                    </div>
                </section>
            </div>
        </div>
    </form>
</body>
</html>

# 5 Creamos el Código de Servidor VB.NET

El código del queda Como Sigue (el código this comentado En Cada Línea Para Que no hay problema ningún Tengas):

Imports DeveloperJI.ChartJI
Imports System.Globalization

Public Class Line
    Inherits System.Web.UI.Page
    Dim strArrayValores() As Integer = {5, 20, 10, 15, 12, 6, 18, 13, 9, 14, 20, 25}
    Dim strArrayVentas() As Integer = {10, 15, 12, 18, 13, 2, 15, 10, 13, 8, 13, 21}
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim _etiquetas As New List(Of String)
        'En este caso las etiquetas seran las siguientes:
        For i = 0 To 11
            _etiquetas.Add(Left(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i + 1), 3))
        Next

        'Asignamos las etiquetas a la gráfica
        Chart1.Valores = _etiquetas
        'Creamos un lista de tipo INFORMACIÓN que sera donde almacenemos la información de cada serie de la grafica
        Dim strDataSet As New List(Of informacion)
        'asignamos los calores, en este caso se creo una función para llenar la lista de información
        strDataSet.Add(generaDatos("rgba(220,220,220,0)", "rgba(220,220,220,1)", "rgba(220,220,220,1)", "#000", 10, 50))
        strDataSet.Add(generaDatos("rgba(151,187,205,0)", "rgba(151,187,205,1)", "rgba(151,187,205,1)", "#000", 40, 80))
        'strDataSet.Add(generaDatos("rgba(217,112,65,0.5)", "rgba(217,112,65,1)", 10, 100))
        'strDataSet.Add(generaDatos("rgba(88,74,94,0.5)", "rgba(88,74,94,1)", 50, 90))
        'Se asignan los valores a la gráfica
        Chart1.Info = strDataSet
        ventasyComprasPorMes()
    End Sub

    Protected Sub ventasyComprasPorMes()
        'Creamos una lista, que representa las etiquetas que apareceran en la gráfica
        Dim _etiquetas As New List(Of String)
        'En este caso las etiquetas seran las siguientes:
        For i = 0 To 11
            _etiquetas.Add(Left(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i + 1), 3))
        Next
        'Asignamos las etiquetas a la gráfica
        Chart2.Valores = _etiquetas
        'Creamos un lista de tipo INFORMACIÓN que sera donde almacenemos la información de cada serie de la grafica
        Dim strDataSet As New List(Of informacion)
        'asignamos los calores, en este caso se creo una función para llenar la lista de información        
        strDataSet.Add(generaDatosxMes("rgba(151,187,205,0.5)", "rgba(151,187,205,1)", "1"))
        strDataSet.Add(generaDatosxMes("rgba(227,97,89,0.7)", "rgba(227,97,89,1)", "2"))
        'Se asignan los valores a la gráfica
        Chart2.Info = strDataSet
    End Sub

    Function generaDatosxMes(fill As String, strokr As String, opcion As String) As informacion
        Dim valor2 As New informacion
        'Representa el color de relleno de la barra (Pueden tener transparencia)
        valor2.FillColor = fill
        'Representa el color del borde de la barra (Pueden tener transparencia)
        valor2.StrokeColor = strokr
        'Se crea una lista de tipo string para los valores para cada barra
        Dim objDatos As New List(Of String)
        Dim rng As New Random
        'valores de las barras en este caso con un random
        For i = 0 To 11
            If opcion = 1 Then
                objDatos.Add(CInt(strArrayValores(i)))
            Else
                objDatos.Add(CInt(strArrayVentas(i)))
            End If
        Next
        rng = Nothing
        valor2.Data = objDatos
        objDatos = Nothing
        Return valor2
    End Function

    Function generaDatos(fill As String, strokr As String, pointColor As String, pointStrokeColor As String, rnd1 As Integer, rnd2 As Integer) As informacion
        Dim valor2 As New informacion
        'Representa el color de relleno de la barra (Pueden tener transparencia)
        valor2.FillColor = fill
        'Representa el color del borde de la barra (Pueden tener transparencia)
        valor2.StrokeColor = strokr
        valor2.PointColor = pointColor
        valor2.PointStrokeColor = pointStrokeColor
        valor2.BackColor = "rgba(151,187,205,.8)"
        'Se crea una lista de tipo string para los valores para cada barra
        Dim objDatos As New List(Of String)
        Dim rng As New Random
        'valores de las barras en este caso con un random
        For i = 0 To 11
            objDatos.Add(CInt(rng.Next(rnd1, rnd2)))
        Next
        rng = Nothing
        valor2.Data = objDatos
        objDatos = Nothing
        Return valor2
    End Function

End Class

C#

int[] strArrayValores = {5,20,10,15,12,6,18,13,9,14,20,25};
	int[] strArrayVentas = {10,15,12,18,13,2,15,10,13,8,13,21};
	protected void Page_Load(object sender, System.EventArgs e)
	{
		List<string> _etiquetas = new List<string>();
		//En este caso las etiquetas seran las siguientes:  
		for (i = 0; i <= 11; i++) {
			_etiquetas.Add(Strings.Left(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i + 1), 3));
		}

		//Asignamos las etiquetas a la gráfica  
		Chart1.Valores = _etiquetas;
		//Creamos un lista de tipo INFORMACIÓN que sera donde almacenemos la información de cada serie de la grafica  
		List<informacion> strDataSet = new List<informacion>();
		//asignamos los calores, en este caso se creo una función para llenar la lista de información  
		strDataSet.Add(generaDatos("rgba(220,220,220,0)", "rgba(220,220,220,1)", "rgba(220,220,220,1)", "#000", 10, 50));
		strDataSet.Add(generaDatos("rgba(151,187,205,0)", "rgba(151,187,205,1)", "rgba(151,187,205,1)", "#000", 40, 80));
		//strDataSet.Add(generaDatos("rgba(217,112,65,0.5)", "rgba(217,112,65,1)", 10, 100))  
		//strDataSet.Add(generaDatos("rgba(88,74,94,0.5)", "rgba(88,74,94,1)", 50, 90))  
		//Se asignan los valores a la gráfica  
		Chart1.Info = strDataSet;
		ventasyComprasPorMes();
	}

	protected void ventasyComprasPorMes()
	{
		//Creamos una lista, que representa las etiquetas que apareceran en la gráfica  
		List<string> _etiquetas = new List<string>();
		//En este caso las etiquetas seran las siguientes:  
		for (i = 0; i <= 11; i++) {
			_etiquetas.Add(Strings.Left(CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(i + 1), 3));
		}
		//Asignamos las etiquetas a la gráfica  
		Chart2.Valores = _etiquetas;
		//Creamos un lista de tipo INFORMACIÓN que sera donde almacenemos la información de cada serie de la grafica  
		List<informacion> strDataSet = new List<informacion>();
		//asignamos los calores, en este caso se creo una función para llenar la lista de información          
		strDataSet.Add(generaDatosxMes("rgba(151,187,205,0.5)", "rgba(151,187,205,1)", "1"));
		strDataSet.Add(generaDatosxMes("rgba(227,97,89,0.7)", "rgba(227,97,89,1)", "2"));
		//Se asignan los valores a la gráfica  
		Chart2.Info = strDataSet;
	}

	public informacion generaDatosxMes(string fill, string strokr, string opcion)
	{
		informacion valor2 = new informacion();
		//Representa el color de relleno de la barra (Pueden tener transparencia)  
		valor2.FillColor = fill;
		//Representa el color del borde de la barra (Pueden tener transparencia)  
		valor2.StrokeColor = strokr;
		//Se crea una lista de tipo string para los valores para cada barra  
		List<string> objDatos = new List<string>();
		Random rng = new Random();
		//valores de las barras en este caso con un random  
		for (i = 0; i <= 11; i++) {
			if (opcion == 1) {
				objDatos.Add(Convert.ToInt32(strArrayValores(i)));
			} else {
				objDatos.Add(Convert.ToInt32(strArrayVentas(i)));
			}
		}
		rng = null;
		valor2.Data = objDatos;
		objDatos = null;
		return valor2;
	}

	public informacion generaDatos(string fill, string strokr, string pointColor, string pointStrokeColor, int rnd1, int rnd2)
	{
		informacion valor2 = new informacion();
		//Representa el color de relleno de la barra (Pueden tener transparencia)  
		valor2.FillColor = fill;
		//Representa el color del borde de la barra (Pueden tener transparencia)  
		valor2.StrokeColor = strokr;
		valor2.PointColor = pointColor;
		valor2.PointStrokeColor = pointStrokeColor;
		valor2.BackColor = "rgba(151,187,205,.8)";
		//Se crea una lista de tipo string para los valores para cada barra  
		List<string> objDatos = new List<string>();
		Random rng = new Random();
		//valores de las barras en este caso con un random  
		for (i = 0; i <= 11; i++) {
			objDatos.Add(Convert.ToInt32(rng.Next(rnd1, rnd2)));
		}
		rng = null;
		valor2.Data = objDatos;
		objDatos = null;
		return valor2;
	}

Si Tienes duda de la implementation o Sugerencias Envía tus comentarios.

Compartir

Comentarios (13)

  • Emilio Responder

    Muy buen ejemplo, este codigo en C# me lo podrias proporcionar, nesecito para jalar datos desde un SQL , donde X= tiempo en segundos, Y= numeros decimales

    Sunday, April 12, 2015 11:00 AM
  • Emilio Responder

    Muy buen ejemplo, este codigo en C# me lo podrias proporcionar, nesecito para jalar datos desde un SQL , donde X= tiempo en segundos, Y= numeros decimales

    Sunday, April 12, 2015 12:18 PM
  • Emilio Responder

    Muy buen ejemplo, este codigo en C# me lo podrias proporcionar, nesecito para jalar datos desde un SQL , donde X= tiempo en segundos, Y= numeros decimales

    Sunday, April 12, 2015 2:59 PM
    • Estrada WebGroup Responder

      Te envíe a tu correo el ejemplo en C#

      4/13/2015 6:25:07 AM
    • Emilio Responder

      mil Gracias por tu apoyo, lo revisare

      4/13/2015 7:53:33 AM
  • Angelica Responder

    Hola muy buen aporte, pero no tendrás el código en C# que me puedas proporcionar.

    Friday, April 24, 2015 9:06 AM
    • Estrada WebGroup Responder

      Claro Angélica, te lo mando a tu correo. Saludos

      4/24/2015 9:29:34 AM
    • Angelica Responder

      muchas gracias, ya recibí el correo

      4/24/2015 8:02:55 PM
  • David Responder

    Excelente aporte, disculpa tendrás el código en C# que me puedas proporcionar. Gracias

    Monday, September 21, 2015 8:40 AM
    • José Responder

      Estimado David, ya esta disponible el ejemplo en C#. Saludos

      10/7/2015 1:51:09 PM
  • Enrique Responder

    Buenas Tardes, el control podría funcionar dentro de un update panel? Tendrías algún ejemplo? Gracias!!

    Friday, June 24, 2016 12:17 PM
  • Luis Carlos Responder

    Compre el control de gráfica de barras en $4, como lo descargo... favor indicar, ademas de duplico el cargo en mi tarjeta, solicito lo antes posible la solución a este problema. Luis Carlos, Costa Rica

    Thursday, June 30, 2016 12:34 PM
  • daniel Responder

    Estimados, realicé la compra de un control y no deja bajarlo, da error en la dirección: .../DownloadFiles/Control-para-graficos-lineales-con-ASP-NET Me podrán pasar el control??,

    Tuesday, August 22, 2017 1:45 PM

Animate deja un comentario!!!

Eres un humano?

Últimos Tweets

Contáctanos

  • Dirección: Plutarco Elias Calles 243, Granjas México, Iztacalco, DF.

  • Teléfono:55-2712-3820 o 55-4164-9484

  • Email: info@developerji.com