Foros del Web » Programando para Internet » ASP Clásico »

Gráfica barras flotantes

Estas en el tema de Gráfica barras flotantes en el foro de ASP Clásico en Foros del Web. En vista de que hay mucha busqueda de como graficar en asp y después de currarmelo un poco os envío algo que no ví por ...
  #1 (permalink)  
Antiguo 07/12/2004, 07:48
 
Fecha de Ingreso: noviembre-2004
Mensajes: 9
Antigüedad: 20 años, 5 meses
Puntos: 0
Gráfica barras flotantes

En vista de que hay mucha busqueda de como graficar en asp y después de currarmelo un poco os envío algo que no ví por ahí.
Uso OWC para generar una gráfica de barras flotantes como imagen en el servidor.

Espero os siva
<%
'grafica de barras flotantes
Dim fecha_ini, x
x=1
'tomamos inicio de la gráfica como hoy
fecha_ini=date()
Set grafica = server.CreateObject("MSGraph.Chart")
Set ds = grafica.Application.DataSheet
ds.Cells.Clear
x=x+1
'nombre de la serie
ds.Cells(1, x).Value = "carlos"
'punto de inicio de la barra
ds.Cells(2, x).Value = fecha_ini+100
'valor desde el inicio
ds.Cells(3, x).Value = datediff("d",fecha_ini,(fecha_ini+90))
x=x+1
'nombre de la serie
ds.Cells(1, x).Value = "juan"
'punto de inicio de la barra
ds.Cells(2, x).Value = fecha_ini+60
'valor desde el inicio
ds.Cells(3, x).Value = 60
x=x+1
'nombre de la barra 2
ds.Cells(1, x).Value = "luis"
'fecha inicio barra proyecto
ds.Cells(2, x).Value = fecha_ini+20
'duración proyecto
ds.Cells(3, x).Value = "0"
'duración tarea
ds.Cells(4, x).Value = 90
x=x+1
'nombre de la barra 2
ds.Cells(1, x).Value = "pedro"
'fecha inicio barra proyecto
ds.Cells(2, x).Value = fecha_ini+200
'duración proyecto
ds.Cells(3, x).Value = "0"
'duración tarea
ds.Cells(4, x).Value = datediff("d",fecha_ini,(fecha_ini+120))
'tipo de frafico
grafica.ChartType = 61
'leyenda
grafica.HasLegend = False
'titulo
grafica.HasTitle = False
'ancho grafica
grafica.Width = 700
'ancho area de dibujo
grafica.PlotArea.Width = 600
'alto en función del nº de barras
dim alto
alto=90+((x-3)*20)
'alto grafica
grafica.Height = alto+180
'alto area dibujo
grafica.PlotArea.Height = alto
'aplicamos valores
grafica.ApplyDataLabels
'ocultamos la 1ª barra
grafica.SeriesCollection(1).Border.LineStyle = xlNone
grafica.SeriesCollection(1).Interior.ColorIndex = xlNone
grafica.SeriesCollection(1).DataLabels.delete
'formateamos la segunda barra
grafica.SeriesCollection(2).DataLabels.showValue=F alse
grafica.SeriesCollection(2).DataLabels.AutoScaleFo nt = True
grafica.SeriesCollection(2).DataLabels.Font.Size = 8
grafica.SeriesCollection(2).Interior.ColorIndex = 41
'formateamos la tercera barra barra
grafica.SeriesCollection(3).DataLabels.showValue=T rue
grafica.SeriesCollection(3).DataLabels.AutoScaleFo nt = True
grafica.SeriesCollection(3).DataLabels.Font.Size = 8

grafica.Activate

'formato eje X
grafica.Axes(2).TickLabels.NumberFormat = "dd-mm-yy;@"
grafica.Axes(2).TickLabels.Font.Name = "Verdana"
grafica.Axes(2).TickLabels.Font.FontStyle = "Normal"
grafica.Axes(2).TickLabels.Font.Size = 8

'rotulo en vertical
grafica.Axes(2).TickLabels.Orientation = -4170
'mímimo escala
grafica.Axes(2).MinimumScale = fecha_ini
'maximo escala
grafica.Axes(2).MaximumScale = fecha_ini+365
'intervalo menor (líneas de división secundarias)
grafica.Axes(2).MinorUnit = 15
'intervalo mayor (líneas de división primarias cada mes)
grafica.Axes(2).MajorUnit = 30
grafica.Axes(2).ReversePlotOrder = False
grafica.Axes(2).ScaleType = xlLinear
grafica.Axes(2).DisplayUnit = xlNone
grafica.Axes(1).HasMajorGridlines = True
grafica.Axes(1).HasMinorGridlines = False
grafica.Axes(2).HasMajorGridlines = True
grafica.Axes(2).HasMinorGridlines = True
'valores eje Y
grafica.Axes(1).TickLabels.Font.Name = "Verdana"
grafica.Axes(1).TickLabels.Font.FontStyle = "Normal"
grafica.Axes(1).TickLabels.Font.Size = 8
grafica.Axes(1).TickLabels.AutoScaleFont = True

tFile = Server.MapPath("grafica.gif")

grafica.Export tFile
%>

<center><img src="grafica.gif"></center>
  #2 (permalink)  
Antiguo 07/12/2004, 08:55
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01B6)
El objeto no acepta esta propiedad o método: 'grafica.SeriesCollection(...).DataLabels.showValu e'
/abl/prueba.asp, line 66

grafica.SeriesCollection(2).DataLabels.showValue=F alse



me quede con las ganas de saber para que servia.

asi que te pregunto a ti mejor..
para que sirve este codigo ?
  #3 (permalink)  
Antiguo 09/12/2004, 01:51
 
Fecha de Ingreso: noviembre-2004
Mensajes: 9
Antigüedad: 20 años, 5 meses
Puntos: 0
Para generar gráficas de barras flotantes

Este tipo de gráfico no está definido para usar en OWC, pero jugando con barras apiladas y haciendo que la primera sea transparente logro lo que vendría a ser un grafico de barras flotantes.

A mi me funciona. No sé si modificaste los valores a representar y a lo mejor alguno es nulo de ahí el error. Prueba borrando los valores de las barras así:

<%
'grafica de barras flotantes
Dim fecha_ini, x
x=1
'tomamos inicio de la gráfica como hoy
fecha_ini=date()
Set grafica = server.CreateObject("MSGraph.Chart")
Set ds = grafica.Application.DataSheet
ds.Cells.Clear
x=x+1
'nombre de la serie
ds.Cells(1, x).Value = "carlos"
'punto de inicio de la barra
ds.Cells(2, x).Value = fecha_ini+100
'valor desde el inicio
ds.Cells(3, x).Value = datediff("d",fecha_ini,(fecha_ini+90))
x=x+1
'nombre de la serie
ds.Cells(1, x).Value = "juan"
'punto de inicio de la barra
ds.Cells(2, x).Value = fecha_ini+60
'valor desde el inicio
ds.Cells(3, x).Value = 60
x=x+1
'nombre de la barra 2
ds.Cells(1, x).Value = "luis"
'fecha inicio barra proyecto
ds.Cells(2, x).Value = fecha_ini+20
'duración proyecto
ds.Cells(3, x).Value = "0"
'duración tarea
ds.Cells(4, x).Value = 90
x=x+1
'nombre de la barra 2
ds.Cells(1, x).Value = "pedro"
'fecha inicio barra proyecto
ds.Cells(2, x).Value = fecha_ini+200
'duración proyecto
ds.Cells(3, x).Value = "0"
'duración tarea
ds.Cells(4, x).Value = datediff("d",fecha_ini,(fecha_ini+120))
'tipo de frafico
grafica.ChartType = 61
'leyenda
grafica.HasLegend = False
'titulo
grafica.HasTitle = False
'ancho grafica
grafica.Width = 700
'ancho area de dibujo
grafica.PlotArea.Width = 600
'alto en función del nº de barras
dim alto
alto=90+((x-3)*20)
'alto grafica
grafica.Height = alto+180
'alto area dibujo
grafica.PlotArea.Height = alto
'aplicamos valores
grafica.ApplyDataLabels
'ocultamos la 1ª barra
grafica.SeriesCollection(1).Border.LineStyle = xlNone
grafica.SeriesCollection(1).Interior.ColorIndex = xlNone
grafica.SeriesCollection(1).DataLabels.delete
'borramos valores de la barra
grafica.SeriesCollection(2).DataLabels.Delete
'grafica.SeriesCollection(2).DataLabels.AutoScaleF ont = True
'grafica.SeriesCollection(2).DataLabels.Font.Size = 8
'color de la barra
grafica.SeriesCollection(2).Interior.ColorIndex = 41
'borramos valores de la barra
grafica.SeriesCollection(3).DataLabels.delete
'grafica.SeriesCollection(3).DataLabels.AutoScaleF ont = True
'grafica.SeriesCollection(3).DataLabels.Font.Size = 8

grafica.Activate

'formato eje X
grafica.Axes(2).TickLabels.NumberFormat = "dd-mm-yy;@"
grafica.Axes(2).TickLabels.Font.Name = "Verdana"
grafica.Axes(2).TickLabels.Font.FontStyle = "Normal"
grafica.Axes(2).TickLabels.Font.Size = 8

'rotulo en vertical
grafica.Axes(2).TickLabels.Orientation = -4170
'mímimo escala
grafica.Axes(2).MinimumScale = fecha_ini
'maximo escala
grafica.Axes(2).MaximumScale = fecha_ini+365
'intervalo menor (líneas de división secundarias)
grafica.Axes(2).MinorUnit = 15
'intervalo mayor (líneas de división primarias cada mes)
grafica.Axes(2).MajorUnit = 30
grafica.Axes(2).ReversePlotOrder = False
grafica.Axes(2).ScaleType = xlLinear
grafica.Axes(2).DisplayUnit = xlNone
grafica.Axes(1).HasMajorGridlines = True
grafica.Axes(1).HasMinorGridlines = False
grafica.Axes(2).HasMajorGridlines = True
grafica.Axes(2).HasMinorGridlines = True
'valores eje Y
grafica.Axes(1).TickLabels.Font.Name = "Verdana"
grafica.Axes(1).TickLabels.Font.FontStyle = "Normal"
grafica.Axes(1).TickLabels.Font.Size = 8
grafica.Axes(1).TickLabels.AutoScaleFont = True

tFile = Server.MapPath("grafica.gif")

grafica.Export tFile
%>


A ver si te funciona, a mi perfectamente de los dos modos. Si tienes algun problema aquí estoy.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.