graficos estadisticos

venezolana
06 de Diciembre del 2002
hello a todos y de antemano gracias por leer mi pregunta, bueno resulta que trabajo con dreamweaver y codigo asp, deseo generar graficos estadisticos de acuerdo a cierto datos que o bien los saco de una base de datos o simplemente son calculos estadisticos.
me gustaria que me orientaran como hacer para comenzar a desarrollarlos, cuales son las mejores opciones que tengo o si existe un programa para realizar lo que deseo y si no es mucha molestia cual es su nombre y donde lo puedo conseguir.... se los agradecere deseo comenzar a trabajar pronto con ese modulo.

venezolana
06 de Diciembre del 2002
Bueno chicos me parece que son muy buenas las opciones que me han dado, tomare en cuenta los tres consejos y el que mas se adapte a mi necesidad sera el elejido, cualquier cosas les aviso, muchisimas gracias por responder a mis preguntas. son unos chicos muy inteligente... Una vez mas gracias.

Nilcos
06 de Diciembre del 2002
Este codigo es un ejemplo encontrado en http://www.asp101.com y retocado por mi, espero que te sea de ayuda

<%
\' Fecha
Dia = Day(Now)
Mes = Month(Now)
Anio = Year(Now)


Sub ShowChart(ByRef aValues, ByRef aLabels, ByRef strTitle, ByRef strXAxisLabel, ByRef strYAxisLabel)
\' Some user changable graph defining constants
\' All units are in screen pixels
Const GRAPH_WIDTH = 450 \' The width of the body of the graph
Const GRAPH_HEIGHT = 250 \' The heigth of the body of the graph
Const GRAPH_BORDER = 5 \' The size of the black border
Const GRAPH_SPACER = 2 \' The size of the space between the bars

\' Debugging constant so I can eaasily switch on borders in case
\' the tables get messed up. Should be left at zero unless you\'re
\' trying to figure out which table cells doing what.
Const TABLE_BORDER = 0
\'Const TABLE_BORDER = 10

\' Declare our variables
Dim I
Dim iMaxValue
Dim iBarWidth
Dim iBarHeight

\' Get the maximum value in the data set
iMaxValue = 0
For I = 0 To UBound(aValues)
If iMaxValue < aValues(I) Then iMaxValue = aValues(I)
Next \'I
\'Response.Write iMaxValue \' Debugging line


\' Calculate the width of the bars
\' Take the overall width and divide by number of items and round down.
\' I then reduce it by the size of the spacer so the end result
\' should be GRAPH_WIDTH or less!
iBarWidth = (GRAPH_WIDTH \ (UBound(aValues) + 1)) - GRAPH_SPACER
\'Response.Write iBarWidth \' Debugging line


\' Start drawing the graph
%>
<TABLE BORDER="<%= TABLE_BORDER %>" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD COLSPAN="3" ALIGN="center"><H2><%= strTitle %></H2></TD>
</TR>
<TR>
<TD VALIGN="center"><B><%= strYAxisLabel %></B></TD>
<TD VALIGN="top">
<TABLE BORDER="<%= TABLE_BORDER %>" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD ROWSPAN="2"><IMG SRC="./estadisticas/fondo3.gif" BORDER="0" WIDTH="1" HEIGHT="<%= GRAPH_HEIGHT %>"></TD>
<TD VALIGN="top" ALIGN="right"><%= iMaxValue %> </TD>
</TR>
<TR>
<TD VALIGN="bottom" ALIGN="right">0 </TD>
</TR>
</TABLE>
</TD>
<TD>
<TABLE BORDER="<%= TABLE_BORDER %>" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD VALIGN="bottom"><IMG SRC="../estadisticas/fondo2.gif" BORDER="0" WIDTH="<%= GRAPH_BORDER %>" HEIGHT="<%= GRAPH_HEIGHT %>"></TD>
<%
\' We\'re now in the body of the chart. Loop through the data showing the bars!
For I = 0 To UBound(aValues)
iBarHeight = Int((aValues(I) / iMaxValue) * GRAPH_HEIGHT)

\' This is a hack since browsers ignore a 0 as an image dimension!
If iBarHeight = 0 Then iBarHeight = 1
%>
<TD VALIGN="bottom"><IMG SRC="../estadisticas/fondo.gif" BORDER="0" WIDTH="<%= GRAPH_SPACER %>" HEIGHT="1"></TD>
<TD VALIGN="bottom"><IMG SRC="../estadisticas/fondo.gif" BORDER="0" WIDTH="<%= iBarWidth %>" HEIGHT="<%= iBarHeight %>" ALT="<%= aValues(I) %>"></A></TD>
<%
Next \'I
%>
</TR>
<!-- I was using GRAPH_BORDER + GRAPH_WIDTH but it was moving the last x axis label -->
<TR>
<TD COLSPAN="<%= (2 * (UBound(aValues) + 1)) + 1 %>"><IMG SRC="../estadisticas/fondo2.gif" BORDER="0" WIDTH="<%= GRAPH_BORDER + ((UBound(aValues) + 1) * (iBarWidth + GRAPH_SPACER)) %>" HEIGHT="<%= GRAPH_BORDER %>"></TD>
</TR>
<% \' The label array is optional and is really only useful for small data sets with very short labels! %>
<% If IsArray(aLabels) Then %>
<TR>
<TD><!-- Spacing for Left Border Column --></TD>
<% For I = 0 To UBound(aValues) %>
<TD><!-- Spacing for Spacer Column --></TD>
<TD ALIGN="center"><FONT SIZE="1"><%= aLabels(I) %></FONT></TD>
<% Next \'I %>
</TR>
<% End If %>
</TABLE>
</TD>
</TR>
<TR>
<TD COLSPAN="2"><!-- Place holder for X Axis label centering--></TD>
<TD ALIGN="center"><BR><B><%= strXAxisLabel %></B></TD>
</TR>
</TABLE>
<%
End Sub
%>
<%
\' Creamos una conexión para añadir la entrada

\' objeto conexion
Set Conn = Server.CreateObject("ADODB.Connection")
\' conectamos a nuestra base de datos (al fichero de access)
Conn.Open "DBQ=" & Server.MapPath("../../db/visitas.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;MaxBufferSize=8192;Threads=20;", "username", "password"

\' objeto record donde almacenar los resultados de la consulta
Set RS = Server.CreateObject("ADODB.Recordset")

Rs.Open "select * from visitas where d=1 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador1=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador1 = contador1 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=2 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador2=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador2 = contador2 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=3 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador3=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador3 = contador3 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=4 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador4=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador4 = contador4 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=5 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador5=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador5 = contador5 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=6 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador6=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador6 = contador6 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=7 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador7=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador7 = contador7 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=8 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador8=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador8 = contador8 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=9 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador9=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador9 = contador9 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=10 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador10=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador10 = contador10 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=11 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador11=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador11 = contador11 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=12 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador12=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador12 = contador12 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=13 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador13=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador13 = contador13 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=14 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador14=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador14 = contador14 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=15 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador15=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador15 = contador15 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=16 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador16=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador16 = contador16 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=17 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador17=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador17 = contador17 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=18 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador18=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador18 = contador18 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=19 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador19=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador19 = contador19 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=20 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador20=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador20 = contador20 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=21 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador21=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador21 = contador21 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=22 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador22=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador22 = contador22 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=23 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador23=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador23 = contador23 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=24 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador24=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador24 = contador24 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=25 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador25=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador25 = contador25 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=26 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador26=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador26 = contador26 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=27 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador27=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador27 = contador27 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=28 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador28=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador28 = contador28 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=29 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador29=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador29 = contador29 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=30 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador30=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador30 = contador30 +1
wend
Rs.Close
Rs.Open "select * from visitas where d=31 AND m="&Mes&" AND a="&Anio&" ", Conn
\' mostrar resultados
contador31=0
while not Rs.EOF
%>
<%
Rs.MoveNext
contador31 = contador31 +1
wend
%>
<%
\' Static Chart (with Bar Labels)
ShowChart Array(contador1, contador2, contador3, contador4, contador5, contador6, contador7, contador8, contador9, contador10, contador11, contador12, contador13, contador14, contador15, contador16, contador17, contador18, contador19, contador20, contador21, contador22, contador23, contador24, contador25, contador26, contador27, contador28, contador29, contador30, contador31), Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21","22", "23", "24", "25", "26", "27", "28", "29", "30", "31"), "Gráfico de Visitas", " " , " "


%>

Dani
06 de Diciembre del 2002
Hola. Hace poco estuve trabajando en una web y tuve que programar unos gráficos de barras. Fijándome en algunos ejemplos que encontré por ahí, me di cuenta que un gráfico de barras es tan sìmple como dibujar una porción de anchura 1 de la barra en el color deseado (puedes utilizar cualquier programa por simple que sea de dibujo y guardarlo como gif o jpg) y en el atributo width, multiplicarlo con ASP por la anchura calculada según los datos que extraigas de la base de datos. Por ejemplo, si una de las barras refleja un 70%, habría que multiplicar la anchura del dibujo por 70 y ya tendría una barra horizontal de 70 de ancho. Espero que hayas entendido la explicación. De todos modos busca en algún portal de ejemplos en ASP que seguro encuentras algun ejemplo. Para dibujar gráficos más complejos lo mejor será que busques alguna aplicación ya programada. Buena suerte.

pablo
06 de Diciembre del 2002
aaa

jorge
06 de Diciembre del 2002
Hola, creo recordar que hay un componente que viene incluido con el ms office, el mschart control. Sirve para hacer gráficas de barras, líneas, circulares, etc.
En una página asp lo tienes que declarar como un control activex y le tienes que pasar parámetros definiendole el tipo de gráfica, colores, valores de eje x, y, etc.
No te puedo decir muy bien donde encontrarlo, porque es algo con lo que trabajé hace tiempo. Busca en la msdn de microsoft, o en google. te saldrán mogollón de páginas.
Saludos

Spider
06 de Diciembre del 2002
Segun mis lurias no e echo ninguno pero al leer tu pregunta se me vino una idea porque no trasportas tus datos a una base de excel y en excel con una macro automatica que te defina la grafica para despues trasnportarla al web se podria hacer no?

saludos.......