2017-01-30

Formato condicional para resaltar filas del mismo grupo


Problema

Para mejorar la legibilidad deseamos diferenciar grupos de filas mediante formato condicional. En nuestro ejemplo resaltaremos los productos que pertenecen al mismo pedido (columna A: Id. de pedido).

Es necesario que la columna en la que basamos los grupos sea numérica. En caso contrario, deberemos crear una columna auxiliar o utitilizar otra fórmula.

Solución

    Aplicamos el formato condicional.

Creamos una nueva regla con la siguiente fórmula.

=RESIDUO($A1;2)=0

Para aquellos números pares, cuyo resto o resíduo al dividir por dos sea cero, resaltará la celda con un relleno azul. El resto las dejará sin relleno.

Aplicamos la misma al rango de celdas deseado.

Resultado

Referencias

  • Resaltar filas alternas en Excel
  • Resaltar grupos de filas basados en el valor de una columna
  • 2017-01-26

    Destacar una barra de un diagrama de barras con ggplot2


    Problema

    Deseamos destacar una determinada barra de un diagrama de barras. En nuestro ejemplo, queremos cambiar el color de la barra 8 para las observaciones A de la columna Var, y la barra 10 de las observaciones B de la columna Var.

    library(ggplot2)
    set.seed(12345)
    data <- data.frame(Var = c(rep("A", 50), rep("B", 50)), Value = round(rnorm(100, 10, 2), 0))
    ggplot(data)+
      geom_histogram(aes(x = Value))+
      facet_grid(Var ~ .)
    

    Solución

  • Colores por defecto.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none").

    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth=0.5) +
      facet_grid(Var ~ .) + 
      theme(legend.position = "none")
     
  • Editando los colores.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none"). Editamos los colores con scale_fill_manual.

    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth=0.5) +
      facet_grid(Var ~ .) + 
      scale_fill_manual(values = c("grey45", "red"))+
      theme(legend.position = "none")
     
  • Con un conjunto de datos mayor.
  • Añadiendo las condiciones para el argumento fill dentro de aes (aesthetics) en geom_histogram. Eliminamos la leyenda con un tamaño desproporcionado con theme(legend.position = "none").Ajustamos el ancho de las barras con bindwith.

    set.seed(12345)
    data <- data.frame(Var = c(rep("A", 50), rep("B", 50)), Value = round(rnorm(10000, 10, 10), 0))
    ggplot(data) + 
      geom_histogram(aes(x = Value, 
                         fill = Value == 8 & Var == "A" | Value == 10 & Var == "B"), binwidth = 0.5) +
      facet_grid(Var ~ .) + 
      theme(legend.position = "none")
     

    Entradas relacionadas

    2017-01-16

    Destacar subconjunto de puntos en un diagrama de dispersión con ggplot2

    Problema

    Deseamos resaltar un determinado número de puntos de un diagrama de dispersión. En nuestro ejemplo, usamos el conjunto de datos mpg (Fuel economy data from 1999 and 2008 for 38 popular models of car). Queremos destacar en rojo y con un tamaño mayor, aquellos cuyo displ (engine displacement) sea mayor de 5 y hwy (highway miles per gallon) mayor de 20.

    Solución

  • Alternativa 1
  • Añadimos la condición lógica para ambos atributos, color y tamaño del punto dentro de geom_point. Después cambiamos manualmente ambos con scale_colour_manual y scale_size_manual. Finalmente eliminamos la leyenda.

    ggplot(data = mpg) + 
      geom_point(mapping = aes(x = displ, y = hwy, colour = displ > 5 & hwy > 20, size = displ > 5 & hwy > 20)) + 
      scale_colour_manual(values = c("black", "red")) + 
      scale_size_manual(values =c(1.5, 3))+
      theme(legend.position = "none")
    
  • Alternativa 2
  • Creamos dos capas de puntos con geom_point. La primera en negro incluye todos los puntos. La segunda en rojo y con un tamaño de punto mayor para el subconjunto del data frame deseado.

    ggplot(data = mpg) + 
      geom_point(mapping = aes(x = displ, y = hwy), colour= "black") +
      geom_point(data = subset(mpg, displ > 5 & hwy > 20), aes(x = displ, y = hwy), colour= "red", size = 3)
     
    En ggplot2 las capas se añaden en el orden especificado en el código. Si alteráramos el orden de las dos capas (geom_point), obtendríamos el siguiente resultado.

    ggplot(data = mpg) + 
       geom_point(data = subset(mpg, displ > 5 & hwy > 20), aes(x = displ, y = hwy), colour= "red", size = 3) +
       geom_point(mapping = aes(x = displ, y = hwy), colour= "black")
     

    Entradas relacionadas

    2017-01-09

    Contar elementos únicos con una tabla dinámica en Excel

    Problema

    Queremos contar los elementos únicos de un campo mediante una tabla dinámica en Excel.

    Solución

    Antes del Excel 2013 esto no era posible. Con Excel 2013, 2016 y Office 365 es posible emplear la función de resumen Recuento distinto, siempre que usemos el modelo de datos en Excel.

    1. Al crear la tabla dinámica, seleccionamos: Agregar estos datos al modelo de datos y hacemos clic en Aceptar.
    2. Añadimos el campo que queremos contar en el área valores
    3. Clic en la flecha situada a la derecha del nombre del campo y luego selecciona la opción de Configuración de campo de valor.
    4. En Resumir campo de valor por seleccionamos Recuento distinto y clic en Aceptar.

    Resultado

    Se puede apreciar como el campo Recuento distinto de Campo 2 cuenta los elementos únicos. Mientras que Recuento de Campo 2 el número de valores no vacíos, el equivalente a CONTARA.

    Referencias

    Entradas relacionadas

    2017-01-06

    Las entradas más visitadas en 2016

    Las 10 entradas más visitadas en 2016 en las categorías de R, Excel, Access y VBA han sido:

    R

    1. Test de normalidad Shapiro–Wilk en R
    2. Calcular la moda en R usando el paquete modeest
    3. Eliminar duplicados de un data frame en R
    4. Superponer gráficos en R: distribución normal
    5. Introducción al diagrama de caja (box plot) en R
    6. Una introducción a la minería de textos en R con El Quijote
    7. Medir el tiempo de ejecución de procesos en R
    8. Introducción al paquete igraph para R
    9. Usando RStudio por primera vez
    10. Gráfico Q-Q en R

    Excel

    1. Convertir horas en un número decimal en Excel
    2. Invertir lista en Excel
    3. Generar números aleatorios entre dos valores con decimales
    4. Omitir todos los errores de una hoja
    5. Formato condicional que diferencia ceros y celdas vacías
    6. Números aleatorios de una lista o rango de opciones
    7. Calcular la duración del día y el horario de verano en Excel
    8. Vínculos externos rotos al mover el libro de destino en Excel
    9. Numerar las celdas visibles con el autofiltro en Excel
    10. Reducir el tamaño de ficheros con tablas dinámicas en Excel

    Access

    1. Cuadros combinados en cascada en Ms Access
    2. Porcentaje del total de la columna en una consulta de Access
    3. Convertir texto en número conservando los decimales en Access
    4. Generar números aleatorios entre dos valores en Ms Access
    5. Exportar tabla o consulta de Access como CSV
    6. Consulta para generar una muestra aleatoria en Ms Access
    7. Cambiar programáticamente la ruta de tablas vinculadas en Access
    8. Crear una consulta de UNION y de UNION ALL en Ms Access
    9. Consulta de actualización con los datos de otra tabla
    10. Usar un cuadro combinado para buscar al teclear en Access

    VBA

    1. Importar ficheros CSV en Excel mediante VBA
    2. Cambiar origen de datos de múltiples tablas dinámicas con VBA
    3. Insertar un reloj en Excel usando VBA
    4. Sucesión de Fibonacci en Excel y VBA
    5. Medir el tiempo de ejecución de subrutinas en VBA
    6. Mostrar u ocultar formas en Excel mediante VBA
    7. Ocultar o mostrar todas las hojas de un libro de Excel (VBA)
    8. Exportar un rango de Excel al bloc de notas mediante VBA
    9. Buscar y reemplazar cadenas de texto con VBA
    10. VBA: cambiar el texto a mayúsculas, minúsculas o nombre propio

    Entradas relacionadas

    Nube de datos