Intercambiar ejes en una gráfica

9 envíos / 0 nuevos
Último envío
Cron
Imagen de Cron
Offline
última acción: Hace 22 mins 23 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 4240
Intercambiar ejes en una gráfica

Hola

Estoy intentando hacer una gráfica del caudal que pasa por una compuerta en función de la altura de embalse y el grado de apertura.

Ya he sido capaz de hacer algo razonable, pero "me ha salido" con los ejes cambiados. Tengo en abscisas la cota de embalse, y en ordenadas el caudal liberado. Hay una curva por cada grado de apertura. Me gustaría que fuera al revés, es decir, poner en abscisas el caudal liberado y en ordenadas la cota de embalse, porque es más correcto.

Los datos los tomo de una tabla que tiene en cada fila los datos para una cota, y en cada columna los datos para un grado de apertura. Los datos de la tabla se calculan en función de cota y grado de apertura y otros parámetros fijos, y dan como resultado los caudales.

 

Cómo podría hacer para darle la vuelta a la gráfica?

 

Si hiciera falta, subiría el libro con los datos.

Por cierto, trabajo con Excel 2007.

 

Muchas gracias y un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 10 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 27/12/2006 - 23:26
Puntos: 4040
Re: Intercambiar ejes en una gráfica

Puedes hacerlo con las series una a una (diseño>seleccionar datos>Editar... y cambias las x por las Y y viceversa)

o puedes programar una macro que lo haga por ti sin equivocarse (si quieres te digo cómo).

Por supuesto, supongo que estarás utilizando un gráfico de dispersión ¿no?.

------
Ya sé Excel, pero necesito más ahora en pdf

envios gratis a todo el mundo

visitante (no verificado)
Imagen de visitante
Re: Intercambiar ejes en una gráfica

Es un gráfico de líneas, con una línea para cada grado de apertura.

Por favor, dime cómo hago la macro, porque hacerlo a mano puede ser mortal. Tengo hasta la última columna ocupada (creo que son 256 columnas) y unas 100 filas.

 

Me parece un fallo de Excel el no permitir hacer esto con un botón, como hacen con lo de "Intercambiar filas/columnas"

 

Un saludo y muchas gracias

Cron
Imagen de Cron
Offline
última acción: Hace 22 mins 23 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 4240
Re: Intercambiar ejes en una gráfica

He respondido y no sé qué ha pasado con la respuesta...

Te decía que gracias por contestar. El gráfico es de líneas, que es parecido. Tengo una línea por cada grado de apertura, y que da el caudal en función de la cota de agua para ese grado de apertura.

Te agradecería mucho que me digas cómo programar la macro, porque no tengo ni idea de cómo atacar el tema de las gráficas.

 

Un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 10 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 27/12/2006 - 23:26
Puntos: 4040
Re: Intercambiar ejes en una gráfica

El gráfico de líneas no tiene la X proporcional, así que lo primero que necesitas es cambiar el tipo de gráfico a dispersión (hay un subtipo de dispersión que también pone líneas entre los puntos, ese es el bueno).

Cada serie del gráfico tiene una fórmula que tiene el siguiente aspecto:

=SERIES ( nombre , ValoresX , ValoresY, orden )

por ejemplo:

=SERIES("nombre",Hoja1!$D$3:$D$8,Hoja1!$C$3:$C$8,2)

se trataría de cambiar estas fórmulas para permutar ValoresX por ValoresY.
podemos utilizar la posición de los separadores, las comas, para localizar los textos (funcionará siempre que no haya comas dentro del nombre)

Para buscar la posición de las comas utilizo la función InStr, y para extraer los textos utilizo la función Mid.
he utilizado también algunas variables auxiliares para hacer las sustituciones.
(las expresiones podrían hacerse más compactas, pero así se ve un poco más claro)

Sub CambiarXporYenGraficoActivo()
'necesitomas.com
Dim SerieDelGrafico As Series
Dim coma1, coma2, coma3
Dim textoX, textoY
Dim auxiliar
    For Each SerieDelGrafico In ActiveChart.SeriesCollection
        With SerieDelGrafico
            coma1 = InStr(1, .Formula, ",")
            coma2 = InStr(coma1 + 1, .Formula, ",")
            coma3 = InStr(coma2 + 1, .Formula, ",")
            textoX = Mid(.Formula, coma1 + 1, coma2 - coma1 - 1)
            textoY = Mid(.Formula, coma2 + 1, coma3 - coma2 - 1)
            auxiliar = Replace(Replace(.Formula, textoX, "valoresX"), textoY, "valoresY")
           
            .Formula = Replace(Replace(auxiliar, "valoresY", textoX), "valoresX", textoY)
        End With
    Next
End Sub

Tendrás que añadir algunas comprobaciones adicionales, por ejemplo para comprobar que haya un gráfico seleccionado, o que el gráfico es de tipo dispersión, para prevenir errores.

------
Ya sé Excel, pero necesito más ahora en pdf

envios gratis a todo el mundo

Cron
Imagen de Cron
Offline
última acción: Hace 22 mins 23 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 4240
Re: Intercambiar ejes en una gráfica

Pues muchísimas gracias. Al fin, y después de pelearme un poco con algunos conceptos referentes a la presentación, y gracias a tu macro he conseguido encajar la gráfica en los estándares de presentación (vamos, que se parezca a las gráficas que ya había en el documento).

 

Al principio me fallaba la cosa, pero es que había dejado el gráfico de líneas. Al cambiarlo a dispersión todo cambia.

 

Cuál es la diferencia entre líneas y dispersión? Solo que el eje X sea proporcional?

 

Lo dicho, muchas gracias.

 

Un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 10 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 27/12/2006 - 23:26
Puntos: 4040
Re: Intercambiar ejes en una gráfica

El gráfico de líneas (y en general todos los de Excel exceptoel de dispersión) no consideran los valores de X como valores, sino como nombres de categorías (de hecho pueden ser textos), que son representados por orden: 1º, 2º, 3º, 4º...

Sólo si los valores de X son fechas, el eje x "entiende" estas fechas y puede representar cada punto en la fecha adecuada (sin horas).

Así que en general, si quieres un gráfico cartesiano para representar puntos (x,y) no queda más alternativa en Excel que el gráfico de dispersión.

------
Ya sé Excel, pero necesito más ahora en pdf

envios gratis a todo el mundo

visitante (no verificado)
Imagen de visitante
Re: Intercambiar ejes en una gráfica

¿Sabrias decimre  qeu tipo de macro debo escribir en excel para intercambiar dos ejes en un grafico de pareto de escel. Se  trataria de que el eje de la derecha donde salen el porcentaje acumulado, saliera en el eje izquierdo y las frecuencias absolutas  salieran en el lado derecho en lugar de en el izquierdo, Tengo que estudiar dos mediciones de pareto diferentes y me exigen poner un grafico al lado del otro, con esta configuración. Un saludo y muchas gracias por tu aydua por adelantado.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 horas 10 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 27/12/2006 - 23:26
Puntos: 4040
Re: Intercambiar ejes en una gráfica

NO hay que escribir ninguna macro, lo que debes configurar son los ejes del gráfico.

pero ojo, para indicar si el eje vertical se debe mostrar a la izquierda o a la derecha, debes configurarlo en el eje horizontal, lo que se configura es en qué lugar del eje horizontal se mostrará el eje vertical.

Si tienes dos ejes verticales, tendrás que configurar el eje horizontal primario y el eje horizontal secundario.

En las propiedades del eje horizontal mira esa opción que pone "El eje vertical cruza"

configurar la posición del eje vertical en Excel


envios gratis a todo el mundo