Mostrando entradas con la etiqueta Gráficos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Gráficos. Mostrar todas las entradas

Gráficos velocímetro II

Continúa de la nota anterior.

Procedamos a la parte difícil, la aguja de nuestro velocímetro. Esto se hace con un gráfico de dispersión XY (que es distinto a un gráfico de líneas). Para lograr que la aguja marque la proporción exacta en el disco (i. e. la proporción de circunferencia correcta), necesitamos convertir el alcance (siguiendo el ejemplo, 88%) en radianes para posteriormente, con las funciones SENO y COS, calcular las coordenadas x y y del punto correspondiente. Luego simplemente agregamos el punto (0, 0) para que Excel los una con la línea correspondiente.
Recordemos los datos a graficar y la tabla auxiliar que ya hemos hecho para la elaboración del disco:
Calculemos ahora cúantos grados debe medir cada punto porcentual. Para ello escribimos en la celda B8 la fórmula:

=(B3-D2)/(D5-D2)*PI()
Resultando 1.837571.
Ahora elaboramos en A10:C12 otra tabla auxiliar:

En B12 escribimos la fórmula:

=-COS(B8), y en C12:

=SENO(B8)

Con esto tenemos ya las coordenadas de los dos puntos que necesitamos: (0, 0) y (0.2636, 0.9646). El siguiente paso es copiar estas dos puntos en la gráfica. Para ello seleccionamos el rango A10:C12, y damos Edición - Copiar (o Ctrl + Insert). Seleccionamos los datos de la gráfica (el "disco") y damos Edición - Pegado especial... (no clic derecho - Pegado especial...). Excel mostrará el siguiente cuadro de diálogo:

Seleccionamos los valores mostrados y damos Aceptar. La gráfica queda:


Evidentemente no es lo que buscábamos. Seleccionamos la segunda serie de datos (la exterior), y damos clic derecho - Tipo de gráfico - Dispersión XY subtipo Dispersión - Aceptar.

Seleccionamos el Eje Y, clic derecho - Formato de ejes... Escala. En valor mínimo escribimos -1, en valor máximo 1 y en Eje de valores (X) cruza en: establecemos 0. Repetimos los mismo con el eje Y:

Damos clic derecho en la nueva serie de datos, Formato de serie de datos... y en Tramas - línea seleccionamos Personalizada y el estilo, color y grosor preferido. En Marcador seleccionamos Ninguno. Aceptar.

Si queremos reducir el tamaño de la aguja entonces aumentamos la escala de ambos ejes. Finalmente eliminamos ambos ejes y sus etiquetas:
Para obtener los colores exactos de Sales Force, necesitamos modificar la paleta de colores de Excel, tema de otra futura nota.

Gráficos velocímetro

Varias empresas utilizan los servicios de Sales Force (por cierto, uno de los peores softwares que he utilizado. Está a años luz de la flexibilidad y facilidad de uso que nos proporciona Excel. Realmente, en cuanto a confiabilidad de la información es absolutamente pésimo. A menos que el usuario tenga un PhD en bases de datos) para gestionar su información. Sales Force utiliza gráficos tipo velocímetro para mostrar alcances:


Excel no soporta de forma predeterminada este tipo de gráfico. Sin embargo, combinando un par de gráficas, podemos obtener algo prácticamente idéntico. Esto fue lo que logré:

Este gráfico es en realidad un gráfico tipo anillo de cuatro secciones (de las cuales una ocupa el 50% del mismo y no tiene color de línea ni de relleno), combinado con un gráfico de dispersión XY (cuyo origen está en el centro del gráfico y que tiene dos puntos, que al unirlos con una línea, forman la "aguja" del velocímetro), con los formatos adecuados. Seguimos los siguientes pasos:
Comencemos por elaborar la escala (el "disco") del velocímetro. Supongamos que queremos graficar los siguientes datos:

Si deseamos que la escala vaya de 0 a 150%, con divisiones de 50%, elaboramos la siguiente tabla auxiliar:

Es decir, del lado izquierdo tenemos las etiquetas que llevarán los segmentos, y, del lado derecho, los valores proporcionales de cada segmento. Como cada uno de los primeros tres segmentos miden lo mismo (50%), ponemos el mismo valor (0.5, puede ser cualquier otro) a cada uno. El cuarto segmento, como ocupará la mitad del "disco", tiene un valor igual a la suma de los tres primeros (1.5).

Seleccionamos la tabla e iniciamos el Asistente para gráficos. En Tipo de gráfico, seleccionamos Anillos, subtipo Anillos. Clic dos veces en Siguiente... para ir directamente al paso 3. Aquí, en la pestaña Título no ponemos nada, en Leyenda desactivamos Mostrar leyenda y en Rótulos de datos activamos la opción Categoría (sugeridos). Damos clic en Finalizar obteniendo el siguiente gráfico:
A continuación, damos clic derecho en el gráfico, Formato de Serie de datos... y vamos a la pestaña Opciones. En Ángulo del primer sector, establecemos 270, Aceptar.
Finalmente, seleccionamos la sección inferior del gráfico (150%), damos clic derecho, Formato de punto de datos... En la pestaña Tramas, en Borde y en Área seleccionamos ninguno. Movemos las etiquetas, y les damos formato. Quedando:


Continuamos en la siguiente entrada.

Marcar máximos y mínimos en gráficas

En la nota sobre gráficos anterior, aplicamos formato condicional a los valores máximo y mínimo de una gráfica de barras. Obviamente, aquella técnica no funciona si utilizamos una gráfica de líneas (o de dispersión XY). En estos casos, lo que podemos hacer es marcar y/o identificar los respectivos valores, como en el siguiente ejemplo:

Como en el caso anterior, buscamos que los marcadores sean dinámicos, es decir, que en todo momento señalen el valor máximo y el mínimo, sin tener que hacer ningún ajuste manual. Para lograrlo seguimos los siguienter pasos:

La siguiente es la tabla de datos original y su respectiva gráfica:
Agregamos dos columnas auxiliares a nuestra tabla de datos, como sigue:

La columna C muestra únicamente el valor máximo de la tabla, mientras que la D solo tiene el valor mínimo. En C2 tenemos la fórmula:

=SI(B2=MAX(B$2:B$11), B2, NOD())
Y en D2:
=SI(B2=MIN(B$2:B$11), B2, NOD())
A continuación agregamos las dos columnas (series) al gráfico. Clic derecho en la gráfica, Datos de origen... y cambiamos el rango a A1:D13. Aceptamos el cuadro.

En este punto la gráfica parece mostrar una sola serie de datos, luciendo exactamente igual que la gráfica original. Pero en realidad tenemos tres series de datos, de las cuales dos tienen un solo punto de datos que a su vez se superpone a algún punto de la primera serie. Para distinguirlas, necesitamos realizar los siguientes ajustes:

Seleccionamos la Serie 2 ("Max"). Dado que esto puede ser complicado, ya que está superpuesta en la Serie 1, podemos seleccionarla de la lista desplegable de la barra de herramientas Gráfico, la cual aparece automáticamente al seleccionar la gráfica:
o bién, seleccionamos cualquier otro elemento de la gráfica y pulsamos las teclas de dirección izquierda y derecha hasta que la mencionada lista desplegable muestre "Serie 2".

Clic derecho en la Serie 2 (o bién, tecla de menú contextual), clic en Formato de serie de datos...
En la pestaña Tramas, establecemos el marcador adecuado, y ajustamos estilo, colores y tamaño a nuestro gusto.


En la pestaña Rótulos de datos activamos Valor y Nombre de la serie (sugerido).
Repetimos estos pasos con la Serie 3 ("Min"), resultando la gráfica mostrada al inicio.
Cambiamos algunos valores de la tabla para ver que los marcadores se ajustan adecuadamente.
Como siempre, el lector sabrá mejorar los formatos utilizados.

Formato condicional en gráficas

Una usauria me pregunta si es posible dar formato condicional a una gráfica de barras, de forma que la columna con el valor mínimo tenga color rojo, y la que tenga el valor máximo sea verde.

Suponiendo la siguiente tabla de datos:


Si hacemos una gráfica de columnas estándar, obtenemos lo siguiente:

Desde luego, se puede cambiar manualmente el color a los puntos (barras) máximo y mínimo de la serie. La desventaja es que, si los datos son cambiantes, habrá que estar coloreando las barras cada que esto ocurra. Lo que buscamos es un formato condicional, automático, que en todo momento de el color adecuado a cada columna.

Excel no tiene una forma directa de hacer este ajuste. De cualquier forma, podemos simular este efecto, llevando a cabo unos cuantos ajustes en nuestros datos y en nuestra gráfica.
Iniciamos aquí el uso de las series auxiliares o dummy series, imprescindibles para elaborar varios tipos de gráficas avanzadas. Comenzamos por añadir a nuestra tabla de datos tres columnas, como sigue:


En la celda C2 tenemos la fórmula:

=SI(B2=MAX($B$2:$B$13),B2,NOD())

En D2:

=SI(B2=MIN($B$2:$B$13),B2,NOD() )

Y en E2:

=SI(ESNOD(C2)*ESNOD(D2), B2,NOD())

Con estas fórmulas, logramos que la columna C muestre únicamente el valor máximo de la serie, la D el mínimo y la E todos los demás. Las celdas restantes muestran resultados de "error". El objetivo de estas fórmulas es crear una matriz de números y valores #N/A. Recordemos de notas anteriores que al graficar, Excel ignora los valores de error y los interpola de forma automática.

El siguiente paso es ajustar el rango de origen de la gráfica. Damos clic derecho en cualquier parte de la gráfica y seleccionamos Datos de origen... y en Rango de datos escribimos el rango:

=Hoja1!$A$1:$A$13,Hoja1!$C$1:$E$13

Es decir, ignoramos la columna B. Aceptamos el cuadro obteniendo la siguiente gráfica:

Observamos que los valores máximo y mínimo tienen colores diferentes. El efecto se logra ya que en realidad estamos graficando tres series de datos (de las cuales las dos primeras constan de un solo punto), pero formuladas de tal manera que aparentan ser una sola.

Podemos ver también que las columnas o series (que antes eran puntos de una sola serie) no aparecen correctamente centrados en sus respectivas categorías. Para solucionar esto, damos clic derecho en la gráfica, clic en Tipo de gráfico... y cambiamos el subtipo de gráfico a Columna apilada (¿por qué?). Obtenemos:

Por último, dí unos cuanto ajustes cosméticos: cambié el color del área de trazado a blanco, el tipo de las líneas de división a línea punteada, y el color de cada serie. Además cambié, en la escala del eje vertical (y), el valor de la división principal a 2 y el de la secundaria a 1. Eliminé el borde del área del gráfico y la subleyenda Valores de la leyenda principal. El resultado final:

Si en este momento cambiamos los valores, y cambia la posición de los valores máximo y mínimo, veremos que los colores se ajustarán en consecuencia.

Gráficas combinadas

El motor de gráficos de Excel permite mezclar dos tipos de gráfico en uno solo, como en el siguiente ejemplo: Este gráfico combina los tipos de gráfico de columnas, y de líneas (en azul). No todos los tipos de gráficos pueden combinarse. Por ejemplo, no se puede combinar un gráfico circular con uno de líneas. Ni se puede combinar un gráfico 3D con ningún otro tipo.

Para lograr este efecto, primero graficamos todas las series de datos con el tipo de gráfico principal (en el ejemplo, el tipo principal es columnas):

Después, simplemente seleccionamos la serie que queremos representar con el otro tipo (hay que tener cuidado de seleccionar solo esa serie). Le damos clic derecho y seleccionamos la opción tipo de gráfico. Seleccionamos el tipo (en nuestro caso líneas) y damos Aceptar.

Toca al lector mejorar los formatos utilizados por el autor, o sea yo.

Este tipo de gráficas resultan útiles cuando queremos representar datos con diferentes escalas de valores, por ejemplo dinero y tasas de interés, o cuentas y sumas.

Link.

Desvincular una gráfica de sus datos de origen

A propósito de la nota sobre resolver una fórmula paso a paso, en la que aprendimos a convertir una fórmula en su resultado utilizando la tecla F9, les traigo este otro tip:


En ocasiones, al estar trabajando con gráficas, nos damos cuenta que solo las necesitamos para una presentación o para imprimirlas, y que por lo tanto, son gráficas estáticas. Es decir, el rango de datos de origen nunca va a cambiar, solo estará ocupando espacio en nuestro libro. Podríamos llevar una vida normal si desvinculáramos la gráfica de los datos y elimináramos estos.

Supongamos la siguiente gráfica:


Para desvincularla de su rango de origen, procedemos como sigue:

1. Seleccionamos la serie de datos (o una de las series de datos) de nuestra gráfica. Con esto, podremos ver, en la barra de fórmulas, que Excel representa una serie de datos con una fórmula, utilizando la función SERIES:

=SERIES(Hoja1!$B$1;Hoja1!$A$2:$A$20;Hoja1!$B$2:$B$20;1)
2. Convertimos los argumentos de dicha fórmula en valores. Seleccionamos primero (en la barra de fórmulas) el segundo argumento de la fórmula y presionamos F9. Con esto la fórmula quedará como sigue:

=SERIES(Hoja1!$B$1;{"Subtech de Mexico SA de CV";"TELECONFERENCE GLOBAL SERV";"UNISIA MEXICANA S.A. DE C.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Walbridge de México, S.A. ";"Mexico Analytica";"Carolina Yaday Perez Hermo";"Autodesk De Mexico, S.A. D";"Grupo Jardín Guadalupano";"Hotel Fiesta Americana";"Servicios Integrales en Co";"Transportes Escolares y de";"Urvina Servicios Internaci";"Applied Biosystems";"Corporacion Financiera Int";"Adelantus";"Adelantus"};Hoja1!$B$2:$B$20;1)

Excel ha convertido el argumento a su correspondiente constante matricial (o matriz de constantes).

3. Repetimos los mismos pasos con el tercer argumento. La fórmula queda:

=SERIES(Hoja1!$B$1;{"Subtech de Mexico SA de CV";"TELECONFERENCE GLOBAL SERV";"UNISIA MEXICANA S.A. DE C.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Walbridge de México, S.A. ";"Mexico Analytica";"Carolina Yaday Perez Hermo";"Autodesk De Mexico, S.A. D";"Grupo Jardín Guadalupano";"Hotel Fiesta Americana";"Servicios Integrales en Co";"Transportes Escolares y de";"Urvina Servicios Internaci";"Applied Biosystems";"Corporacion Financiera Int";"Adelantus";"Adelantus"};{100;70.48;95.89;25;68.29;97.17;79;85.78;0;0;70.68;0;68.35;25;25;0;0;89.21;25};1).

4. El primer argumento también lo podemos convertir a su correspondiente valor, o bién, lo podemos eliminar de la fórmula, ya que es opcional. Presionamos Enter quedando así la fórmula final:
=SERIES(;{"Subtech de Mexico SA de CV";"TELECONFERENCE GLOBAL SERV";"UNISIA MEXICANA S.A. DE C.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Vitech S.A de C.V.";"Walbridge de México, S.A. ";"Mexico Analytica";"Carolina Yaday Perez Hermo";"Autodesk De Mexico, S.A. D";"Grupo Jardín Guadalupano";"Hotel Fiesta Americana";"Servicios Integrales en Co";"Transportes Escolares y de";"Urvina Servicios Internaci";"Applied Biosystems";"Corporacion Financiera Int";"Adelantus";"Adelantus"};{100;70.48;95.89;25;68.29;97.17;79;85.78;0;0;70.68;0;68.35;25;25;0;0;89.21;25};1)

Ahora podemos eliminar el rango de datos de origen sin ningún temor. La única manera de modifcar esta gráfica es arrastrando libremente cada punto de la serie o bién, escribiendo el correspondiente valor directamente en la fórmula. Si queremos cometer un fraude millonario, arrastramos todos los puntos al valor máximo.
Cabe aclarar que este procedimiento solo funciona si nuestras series tienen un número pequeño de datos o puntos (aprox. 50, dependiendo del tamaño de la matriz resultante). Si la matriz de valores resultara muy larga, obtendriamos este mensaje al presionar F9:

Convertir una gráfica en imagen

Cuando queremos convertir una gráfica en un archivo de imagen, como .bmp, o .gif, regularmente copiamos la imagen de pantalla en el portapapeles de Windows, oprimiendo la tecla Impr Pant, abrimos nuestro programa editor de imágenes favorito (léase Paint) y ejecutamos Edición - Pegar (Ctrl + v ó Shift + Insert para los diestros). Después recortamos la imagen para que solo contenga la gráfica y guardamos el archivo.

Si bién el anterior es un método válido, existe otra forma de lograrlo. No es algo directo, pero es más práctico.
Primeramente, seleccionamos la gráfica o gráficas que queremos convertir. Después, ejecutamos Archivo - Guardar como... En la lista Guardar como tipo, seleccionamos Página web. Con esto, el cuadro de diálogo cambiará un poco, quedando de esta forma:

En la nueva sección que aparece, Guardar, damos clic en Selección: Gráfica. Finalmente, damos clic en Aceptar.
Si lo hicimos correctamente, veremos en el Explorador de Windows que Excel, además de haber guardado el archivo como documento HTML, ha creado una carpeta con el mismo nombre. Esta carpeta contendrá todas las gráficas que hayamos seleccionado en el primer paso, con extensión .gif.
Para terminar, hay que tener presente que el archivo HTML está de cierta manera vinculado a la carpeta de las imágenes. Si lo eliminamos, Excel eliminará también la carpeta. Evitemos hacerlo.

Elaborar una gráfica circular con subgráfica

Me pregunta una usauria, Claudia A., como elaborar una gráfica circular (o de pastel) doble, es decir, con el desglose de una "rebanada" de la misma, en otra gráfica circular (técnicamente hablando, un gráfico circular con subgráfico circular):


Es importante notar que una gráfica circular, por su propia naturaleza, solo puede aceptar una única serie de datos; por lo tanto, nuestro rango de origen solo podrá tener una columna (o fila) de datos (más otra columna o fila para los rótulos). Entonces, si nuestros datos están dispersos en varias columnas, tendremos que ajustarlos en otra tabla auxiliar.

Supongamos la siguiente tabla datos:


Deseamos graficar los totales mensuales, y en la segunda gráfica, el detalle del mes de octubre. Como solo podemos usar una columna, elaboramos la siguiente tabla auxiliar:


Es decir, ponemos los totales que aparecerán en la primera gráfica más los subtotales de la segunda SIN la categoría de estos. Nótese que las entradas de la gráfica secundaria siempre van al final. Más adelante se verá porqué.

A continuación, situamos el cursor en la tabla y vamos a Insertar - Gráfico o bién, damos clic en el botón Asistente para gráficos de la barra de herramientas Estándar. En el primer paso seleccionamos el tipo Circular y el subtipo Circular con subgráfico circular.


Avanzamos hasta el paso 3, opciones de gráfico. Escribimos un título para nuestra gráfica. En la pestaña Leyenda desactivamos la opción Mostrar leyenda, y en la pestaña Rótulos de datos seleccionamos Nombre de la categoría y Valor.

Damos clic en finalizar.

Vemos que Excel intentó adivinar cuantos puntos queremos incluir en la subgráfica. En el caso mío, adivinó mal ya que solo incluyó el último punto. Realizamos entonces los siguientes ajustes: damos clic derecho en la serie de datos, seleccionamos Formato de serie de datos y vamos a la pestaña Opciones.


Aquí, en la lista despleglable Dividir series por: seleccionamos Posición, y en Segundo trazado contiene últimos: especificamos 4 valores. Aprovechamos el viaje para ajustar las opciones Tamaño del segundo trazado, el cual cambia la proporción de los tamaños de las gráficas, y Ancho del rango, el cual cambia el tamaño del primer gráfico y la separación entre ambas. Aceptamos el cuadro de diálogo.

Por último, cambiamos manualmente la etiqueta Otros y escribimos Octubre, resultando la gráfica mostrada al principio.

Gráficas sin gráficas

Dentro del amplio repertorio de funciones de texto de Excel, encontramos la función REPETIR. El valor devuelto es simplemente una cadena de texto dada, repetida un número especificado de veces. La sintaxis es sencilla:

=REPETIR(texto,núm_de_veces)

En el siguiente ejemplo,



tenemos esta fórmula en B2:

=REPETIR(A2,5) . En B3 tenemos: =REPETIR(A3 & " ",5)

Si queremos vernos "creativos" podemos usar una fuente Wingdings:
Al usar la imaginación y el caracter de barra vertical como texto a repetir:

el resultado semeja una barra de una gráfica de barras horizontal. De esta forma podemos usar la fórmula para simular una gráfica de barras básica y que ocupa mucho menos espacio en disco que una gráfica normal. Lo único que hay que hacer es utilizar los valores que queremos graficar como segundo argumento de REPETIR. En caso de que las "barras" sean muy cortas o largas ajustamos el argumento núm_de_veces con un factor adecuado.



Otras ideas son usar formato condicional o alinear a la derecha valores negativos y positivos a la izquierda, simulando un histograma.

La fórmula en B2 es:

=ENTERO(A2) & " " & REPETIR("-", A2/10)

con valores alineados a la derecha. En C2 tenemos:

=REPETIR("-", A2/10) & " " & ENTERO(A2)

y alineación a la izquierda. Si no encontramos el caracter de barra vertical en el teclado, escribimos:

=ENTERO(A2) & " " & REPETIR(CARACTER(124), A2/10); y

=REPETIR(CARACTER(124), A2/10) & " " & ENTERO(A2)

En esta página de juiceanalytics podemos encontrar otros varios ejemplos de como usar esta técnica.

Agregar texto a un gráfico

Muchos usuarios coinciden en que Excel no es muy flexible que digamos cuando queremos manipular texto en un gráfico. El título del gráfico, por ejemplo, no puede ser redimensionado, a menos que cambiemos el tamaño de fuente del mismo. Los rótulos de las categorías y de valores, con frecuencia aparecen divididos en dos o más filas, o muy juntos, incluso encimados. En el peor de los casos, aparecen incompletos.

Tampoco podemos vincular los rótulos de ejes a valores en celdas, ni vincular los valores máximo y mínimo del eje de valores a celdas, por ejemplo. A menos, claro está, que utilicemos alguna macro que lo haga.

Tal vez lo que más molesta al usuario común sea el hecho de no poder insertar texto independiente (llamado también texto flotante) a sus gráficos. Afortunadamente, es algo que sí se puede hacer, y es más fácil de lo que parece.

Simplemente, seleccionamos cualquier parte de nuestro gráfico, a excepción de una serie o series de datos, y comenzamos a escribir el texto deseado. Al terminar, presionamos Enter, y Excel nos mostrará un cuadro de texto en el centro de nuestro gráfico con el texto ingresado.

Ahora sí, podemos hacer y deshacer con este texto. Para formatearlo, seleccionamos un borde del mismo, damos clic derecho y seleccionamos Formato de cuadro de texto.



Incluso es posible vincular el texto de este cuadro a una celda, para lo cual simplemente seleccionamos el gráfico, tecleamos el signo =, seleccionamos la celda a la que queremos vincular nuestro texto, y presionamos Enter. Excel creará el vínculo correspondiente.

No pocos usuarios prefieren agregar títulos y textos utilizando esta técnica, en vez de utilizar los comandos nativos de Excel para hacerlo. Así se evitan los contratiempos mencionados al principio.