Formato condicional de gráfico de líneas – R Marketing

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

Estoy muy contento y emocionado de presentarles Daniil Maslyuk (Gorjeo: @DMaslyuk). Conocí a Daniil hace aproximadamente un año (originalmente por correo electrónico) cuando se estaba preparando para mudarse a Australia. Daniil dio el salto poco después y emigró a Australia (desde Rusia); ahora trabaja como consultor de Power BI para Agile BI aquí en Sydney. Daniil y yo hemos trabajado juntos en un par de ocasiones cuando él me ayudó a impartir capacitación en vivo a un par de grupos más grandes que eran demasiado grandes para que yo los entregara por mi cuenta. Daniil sabe muchísimo sobre DAX y Power BI y estoy encantado de que haya aceptado compartir algunos de sus conocimientos aquí en mi blog.

Sobre Daniil.

Formato condicional de gráfico de líneas

¿Alguna vez ha deseado poder cambiar el color de la línea en función de la tendencia general? Por ejemplo, si sus ventas aumentan con el tiempo, la línea es verde; si hay una disminución, la línea es roja. Si bien esta funcionalidad aún no está disponible de forma nativa en Power BI Desktop, no significa que no se pueda hacer. En este artículo, les mostraré cómo lograr este efecto.

Data de muestra

Si desea seguir los ejemplos de este artículo, puede descargar el conjunto de datos de muestra que estoy usando: Color de tendencia – Start.pbix

Este es un conjunto de datos bastante simplista:

relationshipsview-2804771

Pasos a seguir:

  1. Cree una medida de la que vaya a realizar un seguimiento a lo largo del tiempo. En nuestro caso, creé una medida que suaviza las ventas:
    Total Sales = 
    CALCULATE(
        SUM(Sale[SalesAmount]),
        DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -1, MONTH)
    )

    R Marketing ha descrito la técnica de suavizar sus datos en su «Tendencias y suavizado”Artículo anterior. Estoy usando un sabor diferente de la misma técnica: en mi fórmula, DATESINPERIOD devuelve una tabla de fechas para un mes anterior a la última fecha en el contexto de filtro actual. En otras palabras, estoy calculando SalesAmount para un mes continuo (no necesariamente un mes calendario).
    Tenga en cuenta que, en nuestro caso, no es necesario suavizar sus datos; solo lo hago para que los gráficos se vean menos erráticos 🙂

    En esta etapa, podemos construir el siguiente informe:
    salestrendsimple-5343147

  2. Crea una medida que calcule la pendiente de la línea. ¿Qué es la pendiente? Para nuestros propósitos, esta métrica le dice si la tendencia general es positiva o negativa. Si la pendiente es mayor que cero, la tendencia es positiva. Escribí una publicación de blog en regresión lineal simple en DAXy puede copiar y pegar la fórmula desde allí.
    Si lo encuentra útil, felicítelo en la Galería de medidas rápidas: Regresión lineal simple
    La buena noticia es que no necesita comprender cómo funciona esta fórmula para usarla en su beneficio 🙂
    Aquí está la fórmula que estoy usando en nuestro ejemplo:
    Slope = 
    VAR Known =
        FILTER(
            SELECTCOLUMNS(
                ALLSELECTED('Date'),
                "Known[X]", 'Date'[Date],
                "Known[Y]", [Total Sales]
            ),
            AND(
                NOT(ISBLANK(Known[X])),
                NOT(ISBLANK(Known[Y]))
            )
        )
    VAR Count_Items =
        COUNTROWS(Known)
    VAR Sum_X =
        SUMX(Known, Known[X])
    VAR Sum_X2 =
        SUMX(Known, Known[X] ^ 2)
    VAR Sum_Y =
        SUMX(Known, Known[Y])
    VAR Sum_XY =
        SUMX(Known, Known[X] * Known[Y])
    VAR Average_X =
        AVERAGEX(Known, Known[X])
    VAR Average_Y =
        AVERAGEX(Known, Known[Y])
    RETURN
        DIVIDE(
            Count_Items * Sum_XY - Sum_X * Sum_Y,
            Count_Items * Sum_X2 - Sum_X ^ 2
        )
  3. Agrega una línea de tendencia al gráfico. Para hacerlo, seleccione el gráfico de líneas, luego haga clic en Análisis -> Línea de tendencia -> Agregar:
    addtrendline-9747224
    Agregamos esta línea para confirmar visualmente si las ventas aumentan o disminuyen con el tiempo. En este punto, su gráfico debería verse como sigue:
    saleslinewithtrend-6176437
  4. Cree la tabla de tendencias. Puede hacer clic en Obtener datos -> Consulta en blanco y luego cambiar el nombre de la consulta a Tendencia. Abra el Editor avanzado y reemplace el código allí con lo siguiente:
    #table(
        type table[Trend = text],
        {
            {"Increase"},
            {"Decrease"}
        }
    )

    trendtable-4507003

    Creé esta tabla usando el Editor de consultas (Power Query). Como alternativa, también puede usar la función Introducir datos en Power BI.

  5. Cree la medida Ventas de color. Por ahora, simplemente debería ser
    Color Sales = [Total Sales]

    Deténgase aquí antes de continuar. El siguiente paso es aquel en el que ocurre toda la magia. El punto clave a continuación es que una leyenda en un gráfico proporciona un contexto de filtro, al igual que una fila o columna en una matriz.

  6. Utilice la columna Tendencia de la tabla Tendencia como leyenda en nuestro gráfico de líneas y elija los colores: verde para aumentar, rojo para disminuir. En el campo Valores, reemplace la medida Ventas totales por Ventas de color.
  7. Reemplace la fórmula de medida de Ventas de color. Use el siguiente código:
    Color Sales =
    VAR TrendValue =
        SELECTEDVALUE('Trend'[Trend])
    RETURN
        SWITCH(
            TRUE(),
            AND(TrendValue = "Decrease", [Slope] < 0 ), [Total Sales],
            AND(TrendValue = "Increase", [Slope] >= 0 ), [Total Sales]
        )

    ¿Qué hace esta medida? Al principio, puede parecer desconcertante porque regresa [Total Sales] para cualquiera de las condiciones en SWITCH, pero si usa esta medida en nuestro gráfico de líneas, notará que solo usa una categoría de Tendencia a la vez: ya sea Aumentar o Disminuir, dependiendo del valor de Pendiente.
    ¿Por qué necesitamos crear primero la versión simple de Color Sales? Eso es porque si creamos la versión final de inmediato, tendremos que buscar aquellos períodos en los que las ventas aumentan y también en los que disminuyen, porque con la versión final, solo vemos una categoría de Tendencia, no dos. Comenzar con la versión simple hace que sea más fácil elegir los colores.

  8. Opcional: cree la medida de la tarjeta de tendencia:
    Trend Card =
    IF(
        [Slope] < 0,
        "Decrease" & UNICHAR(10060),
        "Increase" & UNICHAR(9989)
    )

    Esta medida devuelve una marca verde (✅) o una cruz roja (❌) cuando la tendencia es positiva o negativa, respectivamente.

Aquí está nuestro resultado final:

trend-7936566

Publique cualquier comentario o pregunta que pueda tener en la sección de comentarios a continuación.

Descarga el informe final: Color de tendencia – Finish.pbix

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘639916389503636’);
fbq(‘track’, ‘PageView’);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.