Intercambiar ejes en una gráfica

14 envíos / 0 nuevos
Último envío
Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
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 23 horas 29 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
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

 

------
Ya sé Excel, pero necesito más.

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 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
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 23 horas 29 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
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

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
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 23 horas 29 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
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

 

------
Ya sé Excel, pero necesito más.

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 23 horas 29 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
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


 

------
Ya sé Excel, pero necesito más.

yo (no verificado)
Imagen de visitante
que bobo

"si quieres te digo como"

 

ADJUNTE LA MACRO Y YA 

Martín (no verificado)
Imagen de visitante
Etiquetas de datos

Estupedas aportaciones y muy útiles, gracias.

Y ya, abusando un poco más me gustaría saber cómo podría organizar las etiquetas de los datos (sin ser una a una). Estoy utilizando un gráfico de dispersión para representar la valencia afectiva y la activación que producen unas imágenes. Yo también debería alternar los ejes para que el resultado fuese el esperado (a ver si lo consigo) pero por otro lado, quisiera que las etiquetas de los datos que ahora aparecen como "Serie 1" representasen  los valores de otra columna donde se hace referencia al dato en cuestión (imagen 1, imagen 2, etc.). ¿Puedo hacerse esto que planteo de alguna forma o, por el contrario no hay posibilidad de ello?

Muchas gracias de antemano por su ayuda. Un saludo. 

jesus garcia (no verificado)
Imagen de visitante
gracias

Buscaba una alternativa para intercambiar datos entre ejes. la promera me sirvió, gracias.

Jose (no verificado)
Imagen de visitante
¿Como funcionaria para gráficos de barra?

Amigo, buenos días

En mi caso tengo un grafico de barras con dos series, al aplicar la macro no invierte las series, de hecho pierdo una, me imagino que debe ser por lo que explicabas de que la macro que compartes era para el caso de un grafico de dispersión. En el caso de tener el grafico de barras como lograría colocar las categorias en el eje Y y los valores en el eje X a traves de una macro, ya que debo generar más de un grafico. 

Gracias de antemano! 

Saludos

visitante (no verificado)
Imagen de visitante
racias Paquito ;D 

racias Paquito ;D