sábado, 23 de enero de 2010

Escalas en ejes de gráficos.

Días atrás expliqué brevemente cómo trabajar con ejes secundarios para un gráfico; hoy intentaré resolver la consulta de un lector:
...Estoy trabajando en un gráfico similar (facturación vs. empleados). El problema es que cuando la facturación queda en negativo, el valor 0 del eje secundario coincide con el menor valor del eje principal; entonces a veces ocurre que el número de empleados queda por debajo del eje principal y queda raro, como si hubiese un número negativo de personas.
¿Existe alguna manera de hacer coincidir el valor 0 de los dos ejes verticales con el eje horizontal?...

La pregunta parece clara, es decir, si tenemos dos series de datos en nuestro gráfico, y hemos optado por mandar una de ellas al eje secundario, ¿que ocurre si una de las series tiene valores negativos?. La respuesta es que tendremos que modificar las escalas del eje.
Supongamos, a modo de ejemplo, las siguientes series:


Vemos que nuestros datos reunen las condiciones para que podamos enviar una de las series, por ejemplo, 'Empleados' al eje secundario:


He remarcado las zonas conflictivas, en el eje principal la serie de datos 'Facturación' nos muestra en negativo uno de los valores, empezando el eje vertical por un valor negativo, lo que da una sensación extraña al mirar el eje secundario, ya que parece que hay un valor de la serie 'Empleados' que también es negativo (aunque sepamos que debemos mirar no hacia el eje principal si no al secundario... como explicaba el usuario). Entonces, ¿existe alguna manera de hacer coincidir el valor 0 de los dos ejes verticales con el eje horizontal?.
Bueno, seguro que existen muchas y variadas, pero he elegido una muy sencilla que no requiere grandes reformas. Simplemente vamos a modificar la escala del eje secundario.

En primer lugar seleccionaremos dentro del gráfico el Eje secundario Vertical que vamos a modificar, después buscamos 'Dar formato a eje', bien con el botón derecho del ratón o bien desde el menú 'Herramientas de gráficos':


El siguiente paso es cambiar en la ventana diálogo que vemos la Escala, en concreto el valor de 'Mínimo', es decir, el valor del eje secundario vertical por el que empieza; para igualarlo en proporción al eje principal, quiero decir, si los valores del Eje principal comienzan con -200 y su unidad de graduación es de 200; nosotros para el eje secundario vertical aplicaremos proporcionalmente los mismos valores, esto es, comenzaremos por el valor mínimo -2 e incrementaremos la graduación en 2.
Debera quedar configurado así:


Hemos conseguido nuestro objetivo, hacer coincidir el valor 0 de los dos ejes verticales con el eje horizontal, tan solo modificando ligeramente la Escala correcta.

50 comentarios:

  1. Buenos días,

    No sé si es el lugar adecuado para preguntar esto, relacionado con las escalas de los ejes, pero no he encontrado nada parecido por internet.

    El caso es que estoy utilizando Excel 2003 para trazar gráficos con datos obtenidos en experimentos, en escala logarítmica. Cada vez que aparece un dato negativo, sale una ventana indicándome que son incompatibles con escala logarítmica (obvio). He cambiado el rango de datos para descartar los datos negativos, pero la ventanita sigue saliendo (???!!!)

    ¿Hay alguna forma de evitar que me salga la ventana? Aparte de que los negativos son irrelevantes para lo que quiero de la gráfica, la ventanita lo único que hace es ralentizar mi trabajo.

    Muchas gracias,


    Alex

    ResponderEliminar
  2. Hola Alex,
    si el error (la ventana) sigue saliendo es que claramente aún te queda algún valor en el origen de datos que sea cero o negativo.

    Se me ocurre que podrías convertir tu origen de datos en una Lista (seleccionar el origen y presionar Crtl+q), y en base a las características de las Listas, emplear el filtro de éstas para discriminar los valores ceros o negativos (i.e., te quedas sólo con los positivos); y sobre esa Lista construyes el gráfico que quieras. Lo bueno es que están vinculado gráfico y Lista filtrada.
    Creo te puede servir.
    Slds
    P.D.: Hay varios post en el blog explicando el uso de Listas o Tablas.

    ResponderEliminar
  3. Hola,
    tengo un problema con las escalas. Resulta que quiero que en el eje Y me aparezca incrementos de un orden de magnitud cada vez (1E+12, 1E+13, 1E+14, etc.)y no soy capaz de hacerlo con la opción unidad mayor, alguien me puede ayudar por favor?
    Gracias de antemano

    ResponderEliminar
    Respuestas
    1. Hola Juan,
      creo que lo más indicado en el caso que planteas, de ir incrementando el eje Y en magnitudes x 10, sería aplicar la Escala logarítmica a ese eje desde Formato de eje.
      Slds

      Eliminar
  4. Hola, muy buenas y gracias por adelantado por la ayuda.

    Necesitaría construir un gráfico con 2 ó 3 series, en las que una de las series sea de barras (horizontales, no columnas) y las otras series en formato de líneas. Sería un gráfico combinado. El problema es que cuando intento cambiar el tipo de gráfico en las serie 2ª o 3ª, me pone la línea en horizontal y no en vertical. Lo mismo ocurre si selecciono el tipo de gráfico como área.
    ¿alguna idea al respecto?. Un saludo

    ResponderEliminar
    Respuestas
    1. Hola,
      he replicado lo que expones y a mi si me realiza el gráfico según lo comentado, esto es, una de las dos series en barras horizontales (siguiendo el eje X secundario) y la otra serie tipo línea (según el eje Y principal).
      Si no te funciona bien, asegúrate que sólo seleccionas las series individuales, antes de cambiarles el tipo, y que no estás seleccionando la totalidad del gráfico.
      Si no te funciona, a pesar de esto, envíame un correo a:
      excelforo@gmail.com
      Slds

      Eliminar
  5. Buenas tardes. Quisiera preguntar una cosa relativa a un grafico que tengo que hacer y me tiene empantanado.
    Necesito realizar un grafico en el que se correlacionen la evolución de consumo de energia (eje de ordenadas Y) con la evolución de la renta per cápita (eje de abscisas x) de 20 paises calculando su media y representandola en el grafico. Cuando inserto el grafico de dispersion el eje Y muestra los valores porcentuales de la media aritmetica de cada pais pero el eje horizontal muestra el numero de paises (20) y si cambio formato al eje intentando que sea igual al eje Y me ammontona todos indicadores porqué, supongo, sigue basado en la cantidad de paises y no en los valores porcentuales.
    No se si me he explicado bien. Gracias de antemano por la colaboración.

    ResponderEliminar
    Respuestas
    1. Hola!!
      mejor envíame a
      excelforo@gmail.com
      lo que tengas, y me hago una idea mejor.
      Cuando lo vea te comento.
      Slds

      Eliminar
    2. Gracias, te envio una copia ahora mismo. Gracias por tu rapidez e interes.
      Marco.

      Eliminar
  6. JUSTO LO QUE BUSCABA, MAGNIFICO GRACIAS

    ResponderEliminar
  7. Hola,
    Gracias por la disponibilidad. Escribo porque estoy haciendo un gráfico de línea en Excel (serie de tiempo), y me surge un problema cuando intento añadir una segunda serie en el mismo gráfico: los valores de la segunda serie no se corresponden con los del eje vertical. En particular, intento graficar la evolución del PBI per cápita de dos paises (EEUU y Argentina) y del mundo, y me queda la serie de Argentina por encima de la de EEUU (absurdo). He tratado de encontrar una solución, pero no lo puedo cambiar. Espero me puedas ayudar y nuevamente agradezco tu disponibilidad.
    Saludos

    ResponderEliminar
  8. Ya encontre la solución, me había imaginado que era algo "tonto", y lo era efectivamente. Disculpas y saludos.

    ResponderEliminar
    Respuestas
    1. Gracias a ti!
      me alegra dieras con la solución.
      Cordiales saludos

      Eliminar
  9. Buenas,

    Tengo una consulta, ocupo hacer un gráfico combinado (barras y líneas) pero con diferentes escalas. Por ejemplo los primeros tres datos son 116, 60 y 20 y deben presentarse en columnas y los siguientes cuatro datos son 23, 19, 15, 17 y deben presentarse en línea y el último dato que es 29 debe presentarse en barra. No se si me explique, pero es un problema que no logro resolver!! (tengo una imagen del tipo de gráfico que describo pero no se como incluirla) Mil Gracias

    ResponderEliminar
    Respuestas
    1. Hola Mariela,
      me imagina que inicialmente todos esos valores pertenecen a un mismo campo (o serie de datos); para conseguir lo que quieres. yo dividiría en tres series diferentes según conjuntos de valores y tipos de gráficos... quizá respondan esas agrupaciones en tres series nuevas a alguna condición y por tanto puedas hacerlo con alguna fórmula.
      Puedes ver un ejemplo similar en
      http://excelforo.blogspot.com.es/2010/11/grafico-de-barras-en-excel-condicionado.html

      Una vez separadas en tres series, construyes el gráfico y seleccionando cada serie podrás optar por un Tipo de gráfico u otro...

      Espero te sirva.
      Slds

      Eliminar
  10. Hola, te comento la duda:

    tengo un eje x con los siguientes valores:1 1,05 1,15 1,20 10 20 30 40...,quiero que el gráfico salga a escala real, es decir, que no haya la misma distancia entre el 1 y el 1,05 y el 10 y el 20.

    Gracias de antemano

    ResponderEliminar
    Respuestas
    1. Hola,
      en estos casos tendrás que 'engañar' a Excel indicando valores no reales (con un =NOD() ) para que te ocupe esos espacios...
      lo que ocurriría es que tu eje sería muy grnade, ya que partirlo en intervalos de 0.05 (la mínima unidad), haría el eje interminable para mostrar sólo 8 valores.
      No creo haya una solución sencilla al problema...

      Un cordial saludo

      Eliminar
  11. Hola,

    Quiero hacer una gráfica con distancias diferentes entre los valores en el eje horizontal. Es decir, que de 0 a -0.5 corresponda a la misma distancia que de 0 a +1.65. Pero la verdad no sé si en excel esto sea posible. Muchas gracias.

    ResponderEliminar
    Respuestas
    1. Hola Claudia,
      todo dependerá del tipo de gráfico que quieras construir, por ejemplo si fuera uno de líneas, podrías añadir como etiquetas los valores
      -1
      -0.5
      0
      1.65
      2
      y a la derecha sus valores...
      La cosa se complica bastante en caso de gráficos de dispersión
      Saludos

      Eliminar
  12. Muchas gracias por tu rapida respuesta! Estoy tratando de hacer graficas con intervalos de confianza, y quisiera que esos intervalos respetaran los valores que yo quiero, no los reales y si los pongo como etiquetas no sé como tomarlos en cuenta. Voy a seguir buscando. Gracias

    ResponderEliminar
  13. Que tal estoy haciendo un grafico en MS Excel 2010 el cual tiene valores negativos en °C y pongo un eje secundario vertical en °F, ya pude ajustar las escalas el problema esta en que la grafica pone los valores negativos en 0 por que pasa esto

    ResponderEliminar
    Respuestas
    1. Hola César,
      yo revisaría el formato de los números del eje.. quizá tenga un formato personalizado que fuerce mostrar los negativos como cero.

      En principio debería ser esto...

      Saludos y comentas

      Eliminar
  14. Porque es importante que una escala comience en 0?

    ResponderEliminar
    Respuestas
    1. Hola, que tal?
      Espero te encuentres bien.
      Es importante en el ejemplo del post para poder equiparar y ajustar el inicio de las escalas de los dos ejes (principal y secundario).
      Un cordial saludo

      Eliminar
  15. Buen día, tengo un gráfico por hacer pero mis datos son de 36.000 valores, como puedo graficar uno de dispersión en escala de 50?

    ResponderEliminar
    Respuestas
    1. Hola Nataly,
      no termino de comprender bien qué necesitas.. pero si el problema es que los valores son muy altos (no la cantidad en sí), creo que lo mejor sería aplicar una corrección, que perfectamente podría ser la que comentas, una escala 1:50...
      que no sería más que dividir cada importe por 50 para luego generar el gráfico.
      Espero haberte entendido
      Slds

      Eliminar
  16. Buenos días,
    Estoy haciendo un gráfico de lineas y no consigo que el numero 0 del eje horizontal coincida con el numero 0 del eje vertical, de forma que entre el eje vertical y el inicio del gráfico hay un espacio. Como lo hago para hacer coincidir el punto (0,0) ?

    Gracias,
    Maria

    ResponderEliminar
    Respuestas
    1. Hola María,
      la propiedad que controla dónde corta cada eje es la descrita en este mismo post...

      Quizá el problema sea solo visual, o donde está configurado la posición de la etiqueta en el eje o donde estén las marcas de graduación

      Saludos

      Eliminar
  17. Buenas tardes, Ismael:
    Estoy haciendo un gráfico en el que los valores del eje x están relacionados a una tabla en la que depende del tiempo en la que se va a realizar una actividad. Puede ser de 12h hasta 36h. El problema es que al coger el rango del eje x de la tabla, al ser variable, marco los 36 valores posibles, pero cuando es menor de 36 me sigue mostrando en el eje x: 36. No sé si me he explicado bien. Me gustaría que el eje x se ajustara al valor de las horas que necesitamos en ese trabajo

    Muchas gracias.
    Un saludo

    ResponderEliminar
    Respuestas
    1. Hola Rocio,
      lo siento, pero no comprendo bien?.
      Las horas están en formato de hora y te muestra horas que no están en la tabla?.
      si es esto y solo quieres ver lo que existe en ese momento en el origen, cambia desde las opciones de eje > tipo de eje > Eje de texto

      Saludos

      Eliminar
    2. Perdona, no me he explicado correctamente. Te voy a preguntar de otra manera:
      Quiero que al introducir un número en una celda el eje x me represente el valor máximo el de esa celda. Es decir, si yo en la celda B2 introduzco 20, el eje x represente del 1 al 20 en escala de 1 en 1. Si introduzco 15, el eje x muestre quince particiones.
      Espero haberme explicado mejor, o mostrarte de manera mas clara lo que deseo.
      Saludos

      Eliminar
    3. Hola Rocio,
      la escala de los ejes de categorías no funcionan igual que los verticales.. pero lo que puedes hacer es aplicar un cambio en las opciones de eje > tipo de eje > Eje de fecha!!!, cambiando el límite superior...
      Te aparecerán como fechas, pero simplemente trátalo como números, por ejemplo límite superior 20 pondrías: 20/01/1900...
      así aparecerá del 1 al 20 tomado de 1 en 1.

      Para vincularlo al valor de una celda habría que generar una macro asociándolo a un evento de hoja _change.

      Saludos

      Eliminar
  18. hola buenas tardes, tengo un gráficos con datos grandes, al hacer en gráfico de dispersión, hacer la linea de tendencia(lineal) no hay problema pero al presentar la ecuación en el gráfico este no representa de forma correcta y lo redondea, aparte de la forma manual existe forma de dejarlo mas representativo de los datos el valor de la ecuación
    5,18672E+14 0,812
    5,48996E+14 0,853
    6,87858E+14 1,422
    7,40858E+14 1,604
    8,20264E+14 1,933

    ResponderEliminar
    Respuestas
    1. Hola Pablo,
      un truco sería seleccionar el cuadro de texto que se añade con la ecuación de la línea de tendencia (dentro del gráfico), y luego aplicar un formato de número, igual que haríamos en una celda.
      Es solo un tema de formato...

      Saludos

      Eliminar
  19. Como hago para que el eje x este en escala logaritmica y el eje y en decimal?

    ResponderEliminar
    Respuestas
    1. Hola, buenos, días,
      cómo estás?, un placer saludarte igualmente.

      Solo hay un tipo de gráfico que te permite aplicar base logarítmica al eje horizontal: el gráfico de dispersión.

      Un cordial saludo

      Eliminar
  20. Buenas tardes.
    Tengo un gráfico de dispersión, con el eje X en escala logarítmica. Los valores en el eje X se ponen de manera automática y aunque puedo modificarlos un poco con las opciones de "límites" y "unidades" en el eje, no logro dejarlos cómo necesito. Por ejemplo, sale el número 1 y divisiones consecutivas sin número, hasta el número 10. ¿Cómo puedo hacer para que se vean los números de las divisiones consecutivas?

    ResponderEliminar
    Respuestas
    1. Hola,
      investigaré algo más al respecto, pero no creo sea posible..
      Podrías, eso sí (y no con el mismo resultado), aplicar en una columna auxiliar la función LOG10 sobre los valores a representar en el eje X, para luego ser éstos los que se incorporarían al gráfico...
      El aspecto visual sería el mismo...
      Finalmente habría que jugar para conseguir que las etiquetas del eje aparezcan con los valores originales y no los tratados con LOG10

      Intentaré escribir un post exponiendo el caso.
      Slds

      Eliminar
    2. Gracias por la pronta respuesta. Vamos a intentar la idea propuesta. Si investiga algo más al respecto, se lo agradecemos de antemano. ¡Saludos!

      Eliminar
  21. Buenas Tardes Ismael, tengo la siguiente inquietud. Intengo graficar con lineas en el eje primario un rango desde -10 hasta 100 (°C) y en el eje secundario con barras un rango de 0 hasta 200 (mm). Actualmente el resultado me deja como base el -10° con 0 mm por lo tanto las gráficas no son consistentes. Deseo quede 0° con 0 mm pero, que las líneas bajen a -10° C. Agradezco su colaboración.

    ResponderEliminar
    Respuestas
    1. Hola,
      al tenerlos en ejes opuestos (principal y secundario) solo te quedaría jugar con los límites de las opciones de los ejes, y disponerlos con igual mínimo y máximo (mín= -10 y máx=200)

      Un saludo

      Eliminar
  22. Hola tengo una consulta, alguien sabe como realizar un gráfico de barra con valores tanto positivos como negativos?. En el ejemplo de arriba se muestra un valor negativo pero en una barra sola, yo necesito tener una barra con numero positivo y debajo la barra con numero negativo. Muchas Grcias

    ResponderEliminar
    Respuestas
    1. Hola,
      siempre dependerá de cómo tengas los datos, si quieres que estén en la misma columna (o barra) deben estar en series distinta y aplicar un gráfico de columnas/barras apiladas
      Un saludo

      Eliminar
  23. Hola, una consulta sobre el eje secundario...tenemos dos escalas (una a la izquierda y otra a la derecha). Con la función combinada sólo se puede "agrupar", es decir, uno sobre otro. ¿Es posible tener dos barras, una al lado de la otra, una para cada escala?

    ResponderEliminar
    Respuestas
    1. Gracias Ismael, gracias por la información. Hay un avance...para que salgan barras agrupadas (una al lado de la otra) y con diferentes escalas (izq diferente de der) tuve que engañar a la tabla, agregué dos columnas de datos en blanco. Lo malo es que si quiero mostrar los datos de cada columna (tabla abajo) figuran las dos líneas de datos en blanco, cada una con su color correspondiente. ¿Sólo se puede hacer engañando al Excel? o hay una forma más "formal"...gracias!

      Eliminar
  24. Como cambio el eje vertical que indica 4 3 2 1 a muy alto, alto, medio y bajo???

    ResponderEliminar
    Respuestas
    1. Hola Miguel,
      ¿cómo estás?, un placer saludarte y poder ayudarte

      En ocasiones se suele engañar a Excel añadiendo una serie nueva con esos cuatro puntos (4,3,2,1) con los títulos correspondientes.. así al añadirlo al gráfico se puede mostrar sus etiquetas de datos con esos títulos

      Un cordial saludo

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.