{
  "name": "CSalcedo DataBI — Deneb Gallery",
  "description": "Corpus verificado de plantillas Vega/Vega-Lite para Deneb (Power BI). Cada entrada incluye el spec que SÍ compila y filtra en Power BI (con la interactividad nativa __selected__, naming __0__, pbiFormat).",
  "license": "Free to use; attribution appreciated.",
  "licenseNote": "Per-template licensing: entries with a `provenance` block come from third parties and are governed by `provenance.license`. `provenance.redistributable` is the single flag that says whether that spec may be redistributed. Absence of a license means all rights reserved, never permission.",
  "author": "Cristobal Salcedo",
  "url": "https://csalcedodatabi.com/deneb",
  "count": 30,
  "templates": [
    {
      "id": "grouped-bar-chart-multiple-measure-with-repeat",
      "title": "Barras agrupadas (varias medidas con repeat)",
      "description": "Gráfico de barras agrupadas (varias medidas con ‘repeat’) que muestra los ingresos brutos mundiales y de EE. UU. por género cinematográfico principal. Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI; ten en cuenta que la interactividad de cross-filter es limitada cuando se usa ‘repeat’.",
      "chartType": "grouped-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/grouped-bar-chart-multiple-measure-with-repeat",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/grouped-bar-chart-multiple-measure-with-repeat.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Grouped_Bar_Chart_%28Multiple_Measure_With_Repeat%29/Files/Grouped_Bar_Chart_%28Multiple_Measure_With_Repeat%29.pbix",
      "tutorial": null
    },
    {
      "id": "diverging-stacked-bar-chart-population-pyramid",
      "title": "Barras apiladas divergentes (pirámide de población)",
      "description": "Gráfico de barras apiladas divergentes (pirámide de población). Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI. Nota: la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "population-pyramid",
      "provider": "vegaLite",
      "providerVersion": "5.20.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-click",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": [
          "genderSel"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/diverging-stacked-bar-chart-population-pyramid",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/diverging-stacked-bar-chart-population-pyramid.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Diverging_Stacked_Bar_Chart_Population_Pyramid/Files/Diverging_Stacked_Bar_Chart_Population_Pyramid.pbix",
      "tutorial": null
    },
    {
      "id": "normalized-percentage-stacked-bar-chart",
      "title": "Barras apiladas normalizadas (porcentaje)",
      "description": "Gráfico de barras apiladas normalizado (porcentaje). Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI. Nota: la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "normalized-stacked-bar",
      "provider": "vegaLite",
      "providerVersion": "5.19.0",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/normalized-percentage-stacked-bar-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/normalized-percentage-stacked-bar-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Normalized_Percentage_Stacked_Bar_Chart/Files/Normalized_Percentage_Stacked_Bar_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "normalized-percentage-stacked-bar-chart-with-labels",
      "title": "Barras apiladas normalizadas (porcentaje) con etiquetas dinámicas",
      "description": "Gráfico de barras apiladas normalizado (porcentaje) con etiquetas dinámicas. Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI. Nota: la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "normalized-stacked-bar",
      "provider": "vegaLite",
      "providerVersion": "5.19.0",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/normalized-percentage-stacked-bar-chart-with-labels",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/normalized-percentage-stacked-bar-chart-with-labels.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Normalized_Percentage_Stacked_Bar_Chart_With_Labels/Files/Normalized_Stacked_Bar_Chart_With_Labels.pbix",
      "tutorial": null
    },
    {
      "id": "barras-eje-dinamico",
      "title": "Barras con eje de alineación dinámica",
      "description": "Barras horizontales donde la alineación de las etiquetas del eje (izquierda o derecha) cambia según un parámetro seleccionado en el reporte.",
      "chartType": "dynamic-axis-bar",
      "provider": "vega",
      "providerVersion": "5.26.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "slicer-param",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/barras-eje-dinamico",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/barras-eje-dinamico.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Barras_Eje_Dinamico/Files/Alineaci%C3%B3n%20Din%C3%A1mica%20del%20Eje.pbix",
      "tutorial": null
    },
    {
      "id": "dynamic-bar-chart-encoding-colors-with-hexadecimal-or-color-names",
      "title": "Barras dinámicas: colores por hexadecimal o nombre según la categoría",
      "description": "Gráfico de barras dinámico que codifica los colores mediante valores hexadecimales o nombres de color según las categorías de los datos. Adaptado de un ejemplo de Vega-Lite y personalizado para Deneb en Power BI; ofrece una herramienta flexible para visualizar datos de color de forma clara y dinámica. Creado por Cristóbal Salcedo Beltrán. Consultas: contacto@csalcedodatabi.com.",
      "chartType": "dynamic-color-bar",
      "provider": "vegaLite",
      "providerVersion": "5.20.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/dynamic-bar-chart-encoding-colors-with-hexadecimal-or-color-names",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/dynamic-bar-chart-encoding-colors-with-hexadecimal-or-color-names.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Dynamic%20Bar_Chart_Encoding_Colors_with_Hexadecimal_or_Color_Names/Files/Dynamic_Bar_Chart_Encoding_Colors_with_Hexadecimal_or_Color_Names_Based_on_Data_Categories.pbix",
      "tutorial": null
    },
    {
      "id": "combo-barras-linea",
      "title": "Barras y línea con doble eje",
      "description": "Un combo honesto: las barras llevan el importe y la línea el porcentaje, cada una con su propia escala Y. La clave es `resolve: {scale: {y: \"independent\"}}` — sin esa línea Vega-Lite fusiona las dos escalas y el porcentaje queda aplastado contra el cero frente a los millones. Clic en un mes para filtrar el resto del informe.",
      "chartType": "combo",
      "provider": "vegaLite",
      "providerVersion": "6.4.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "combo",
        "doble eje",
        "series temporales",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/combo-barras-linea",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/combo-barras-linea.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Combo_Barras_Linea/Combo_Barras_Linea.zip",
      "tutorial": null
    },
    {
      "id": "dispersion-regresion",
      "title": "Diagrama de dispersión con regresión (método seleccionable)",
      "description": "Diagrama de dispersión con línea de regresión (método seleccionable) que compara la calificación de Rotten Tomatoes frente a la de IMDb en un conjunto de películas.",
      "chartType": "scatter-regression",
      "provider": "vega",
      "providerVersion": "5.23.0",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/dispersion-regresion",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/dispersion-regresion.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Dispersi%C3%B3n_Regresi%C3%B3n/Files/Data.pbix",
      "tutorial": null
    },
    {
      "id": "dispersion-etiquetados",
      "title": "Diagrama de dispersión etiquetado",
      "description": "Diagrama de dispersión etiquetado de películas que compara la calificación de Rotten Tomatoes frente a la de IMDb. Autor: Cristóbal Salcedo Beltrán. Inspirado en el ejemplo de regresión LOESS de Vega (https://vega.github.io/vega/examples/loess-regression/).",
      "chartType": "scatter",
      "provider": "vega",
      "providerVersion": "5.26.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/dispersion-etiquetados",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/dispersion-etiquetados.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Dispersion_Etiquetados/Files/Dispersion_Etiquetada.pbix",
      "tutorial": null
    },
    {
      "id": "gantt-chart",
      "title": "Diagrama de Gantt",
      "description": "Plantilla de diagrama de Gantt, adaptada de Vega-Lite y personalizada para Deneb en Power BI. Incluye etiquetas dentro de las barras con la duración de cada tarea y un título descriptivo para facilitar la lectura. Las tareas se ordenan en el eje Y, con barras en verde oscuro y esquinas redondeadas para un aspecto moderno. Además, el cross-filter funciona por completo, lo que hace este gráfico aplicable a cualquier proceso que requiera seguir los tiempos y la secuencia de las actividades.",
      "chartType": "gantt",
      "provider": "vegaLite",
      "providerVersion": "5.20.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/gantt-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/gantt-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Gantt_Chart/Gantt_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "pareto-verticales",
      "title": "Diagrama de Pareto Vertical",
      "description": "Diagrama de Pareto Vertical en Power BI con Deneb y Vega Lite (Parte: 1)",
      "chartType": "pareto",
      "provider": "vegaLite",
      "providerVersion": "5.6.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/pareto-verticales",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/pareto-verticales.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Pareto_Verticales/Files/Pareto_Vertical_PowerBI_Deneb_VegaLite_P1.pbix",
      "tutorial": null
    },
    {
      "id": "multiples-tarjetas",
      "title": "Explorador de KPIs por Categoría",
      "description": "Plantilla interactiva que te permite visualizar y comparar tendencias de tus indicadores clave de rendimiento según cualquier categoría. Selecciona dinámica­mente la métrica y la categoría para ver la evolución mensual, detectar patrones y tomar decisiones basadas en datos de manera ágil y clara. autor: Cristobal Salcedo Beltran",
      "chartType": "card",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "KPI",
        "tarjetas",
        "small multiples"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": false,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "avanzado",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/multiples-tarjetas",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/multiples-tarjetas.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Multiples_Tarjetas/Files/Explorador_de_KPIs_por_Categoria.pbix",
      "tutorial": null
    },
    {
      "id": "aggregate-bar-chart-with-cross-filtering",
      "title": "Gráfico de barras agregado con filtrado cruzado",
      "description": "Gráfico de barras agregado con filtrado cruzado. Muestra la distribución de la población de EE. UU. por grupos de edad en el año 2000. Ejemplo de Vega-Lite adaptado a Deneb en Power BI, con cross-filter, etiquetas mejoradas con la función pbiFormat y alineadas a derecha e izquierda para una mejor lectura, con las barras en color blanco y negro.",
      "chartType": "aggregate-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/aggregate-bar-chart-with-cross-filtering",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/aggregate-bar-chart-with-cross-filtering.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Aggregate_Bar_Chart_With_Cross_Filtering/Aggregate_Bar_Chart_With_Cross_Filtering.pbix",
      "tutorial": null
    },
    {
      "id": "aggregate-bar-chart-with-cross-filtering-sorted",
      "title": "Gráfico de barras agregado con filtrado cruzado (ordenado)",
      "description": "Gráfico de barras agregado con filtrado cruzado (ordenado). Muestra la distribución de la población de EE. UU. por grupos de edad en el año 2000. Ejemplo de Vega-Lite adaptado a Deneb en Power BI, con cross-filter, etiquetas mejoradas con la función pbiFormat y alineadas a derecha e izquierda para una mejor lectura, con las barras en blanco y negro.",
      "chartType": "aggregate-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-controls",
        "liveInBrowser": true,
        "bindInputs": [
          "checkbox"
        ],
        "params": [
          "toggleAscending"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/aggregate-bar-chart-with-cross-filtering-sorted",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/aggregate-bar-chart-with-cross-filtering-sorted.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Aggregate_Bar_Chart_With_Cross_Filtering_Sorted/Aggregate_Bar_Chart_With_Cross_Filtering_Sorted.pbix",
      "tutorial": null
    },
    {
      "id": "group-bar-chart-with-cross-filtering",
      "title": "Gráfico de barras agrupadas con filtrado cruzado",
      "description": "Gráfico de barras agrupadas con filtrado cruzado. Basado en el ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI, con dos categorías y una medida, e interactividad de cross-filter.",
      "chartType": "grouped-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": false,
        "contextMenu": false,
        "selection": false,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/group-bar-chart-with-cross-filtering",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/group-bar-chart-with-cross-filtering.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Group_Bar_Chart_With_Cross_Filtering/Files/Group_Bar_Chart_With_Cross_Filtering.pbix",
      "tutorial": null
    },
    {
      "id": "stacked-bar-chart",
      "title": "Gráfico de barras apiladas",
      "description": "Gráfico de barras apiladas. Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI; ten en cuenta que la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "stacked-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-click",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": [
          "legendSel"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/stacked-bar-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/stacked-bar-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Stacked_Bar_Chart/Files/Stacked_Bar_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "stacked-bar-chart-with-rounded-corners",
      "title": "Gráfico de barras apiladas con esquinas redondeadas",
      "description": "Gráfico de barras apiladas con esquinas redondeadas. Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI; ten en cuenta que la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "stacked-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/stacked-bar-chart-with-rounded-corners",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/stacked-bar-chart-with-rounded-corners.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Stacked_Bar_Chart_With_Rounded_Corners/Files/Stacked_Bar_Chart_With_Rounded_Corners.pbix",
      "tutorial": null
    },
    {
      "id": "horizontal-stacked-bar-chart",
      "title": "Gráfico de barras apiladas horizontales",
      "description": "Gráfico de barras apiladas horizontales. Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI; ten en cuenta que la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "stacked-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": false,
        "mode": "static",
        "liveInBrowser": false,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/horizontal-stacked-bar-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/horizontal-stacked-bar-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Horizontal_Stacked_Bar_Chart/Files/Horizontal_Stacked_Bar_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "responsive-bar-chart-with-cross-filtering",
      "title": "Gráfico de barras responsivo con filtrado cruzado",
      "description": "Gráfico de barras responsivo que muestra los valores cuantitativos de una medida para cada categoría. Permite interactuar con los datos mediante tooltips, menú contextual y selección, facilitando el cross-filter y el análisis en detalle.",
      "chartType": "responsive-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/responsive-bar-chart-with-cross-filtering",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/responsive-bar-chart-with-cross-filtering.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Responsive_Bar_Chart_With_Cross_Filtering/Files/Responsive_Bar_Chart_With_Cross_Filtering.pbix",
      "tutorial": null
    },
    {
      "id": "layered-bar-chart",
      "title": "Gráfico de barras superpuestas",
      "description": "Gráfico de barras superpuestas (layered). Basado en un ejemplo oficial de Vega-Lite y adaptado para Deneb en Power BI. Nota: la interactividad de cross-filter es limitada cuando se usa ‘aggregate’.",
      "chartType": "layered-bar",
      "provider": "vegaLite",
      "providerVersion": "5.20.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-click",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": [
          "genderSel"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/layered-bar-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/layered-bar-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Layered_Bar_Chart/Files/Layered_Bar_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "diagramas-pareto",
      "title": "Gráfico de Pareto Dinámico",
      "description": "Gráfico de Pareto Dinámico, Autor: Cristóbal Salcedo. Contacto: contacto@csalcedodatabi.com. Artículos relacionados: https://csalcedodatabi.github.io/posts/diagrama-pareto-parte-1/",
      "chartType": "pareto",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/diagramas-pareto",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/diagramas-pareto.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Diagramas_Pareto/FIles/Pareto_Dinamico_Deneb_VegaLite_P1.pbix",
      "tutorial": null
    },
    {
      "id": "tarjetas-dinamicas",
      "title": "Gráfico de Tarjeta Dinámica en Power BI con Vega-Lite y Deneb",
      "description": "Gráfico de Tarjeta Dinámica en Power BI con Vega-Lite y Deneb",
      "chartType": "card",
      "provider": "vegaLite",
      "providerVersion": "5.6.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/tarjetas-dinamicas",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/tarjetas-dinamicas.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Tarjetas_Dinamicas/Files/Tarjetas_Dinamicas_Tendencia_Deneb_VegaLite.pbix",
      "tutorial": null
    },
    {
      "id": "grilla-termometros-ibcs",
      "title": "Grilla de termómetros IBCS (Real · Objetivo · Año anterior)",
      "description": "Una grilla de tiles KPI, y dentro de cada tile un termómetro vertical al estilo IBCS: la barra ancha con degradado es el valor real, la barra fina al lado es el año anterior, y el tick negro que las cruza es el objetivo. Cada tile lleva su propio semáforo de cumplimiento arriba. Mismo contrato de datos y misma lógica de cross-filter que la tarjeta bullet horizontal — solo cambia la disposición: de lista apilada a muro de tiles en grilla.",
      "chartType": "bullet-grid",
      "provider": "vega",
      "providerVersion": "5.30.0",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega",
        "tarjeta",
        "KPI",
        "grilla",
        "termómetro",
        "IBCS",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-controls",
        "liveInBrowser": true,
        "bindInputs": [
          "range"
        ],
        "params": [
          "topN"
        ]
      },
      "difficulty": "avanzado",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/grilla-termometros-ibcs",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/grilla-termometros-ibcs.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Grilla_Termometros_IBCS/Grilla_Termometros_IBCS.zip",
      "tutorial": null
    },
    {
      "id": "linea-elegante-interanual",
      "title": "Línea elegante, actual vs año anterior",
      "description": "Una sola línea suave cuenta la tendencia; una segunda, punteada y discreta, la compara contra el mismo mes del año anterior. El área bajo la línea del año en curso es puramente decorativa —el eje no arranca en cero, así que quien codifica la magnitud es la línea, no el área—, el eje X marca el año completo solo en enero y julio con una divisoria sutil en el cambio de año, y el último punto lleva su valor y variación interanual escritos junto a la línea en vez de una leyenda.",
      "chartType": "line-yoy",
      "provider": "vegaLite",
      "providerVersion": "6.4.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "línea",
        "tendencia",
        "interanual",
        "año anterior",
        "series temporales",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/linea-elegante-interanual",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/linea-elegante-interanual.json",
      "tutorial": null
    },
    {
      "id": "calendar-heatmap",
      "title": "Mapa de calor de calendario",
      "description": "Cada celda es un día y su color es la intensidad de la medida: el año entero cabe en una rejilla de 53 semanas × 7 días. Lo que se lee de un vistazo no es el total sino el PATRÓN — qué días de la semana concentran, dónde hay temporada y, si los hay, los días sin actividad. El calendario lo deriva el propio spec con `timeUnit` a partir de una sola columna de fecha, así que no hay que añadir columnas auxiliares al modelo.",
      "chartType": "calendar-heatmap",
      "provider": "vegaLite",
      "providerVersion": "6.4.1",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "mapa de calor",
        "calendario",
        "estacionalidad",
        "series temporales",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "avanzado",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/calendar-heatmap",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/calendar-heatmap.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Calendar_Heatmap/Calendar_Heatmap.zip",
      "tutorial": null
    },
    {
      "id": "simple-bar-chart",
      "title": "Plantilla de gráfico de barras simple",
      "description": "Plantilla de gráfico de barras simple, basada en el ejemplo oficial de Vega-Lite y adaptada para Deneb en Power BI con interactividad añadida (cross-filter).",
      "chartType": "bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "host-crossfilter",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": []
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/simple-bar-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/simple-bar-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Simple_Bar_Chart/Files/Simple_Bar_Chart.pbix",
      "tutorial": null
    },
    {
      "id": "ranking-bump-chart",
      "title": "Ranking en el tiempo (bump chart)",
      "description": "Cada línea es una categoría y su altura es el puesto que ocupa en cada periodo: 1º arriba. El puesto NO viene del modelo — se calcula dentro del spec con un window rank por periodo, así que cambiar la medida que ordena no exige tocar el modelo semántico. Pasa el cursor sobre una línea y el resto se atenúa para seguir su recorrido.",
      "chartType": "bump",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "ranking",
        "bump chart",
        "series temporales",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-click",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": [
          "serieHover"
        ]
      },
      "difficulty": "avanzado",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/ranking-bump-chart",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/ranking-bump-chart.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Ranking_Bump_Chart/Ranking_Bump_Chart.zip",
      "tutorial": null
    },
    {
      "id": "selection-brush-showcase",
      "title": "Selección + Highlight (brush interval)",
      "description": "Arrastra un recuadro sobre el gráfico (selección interval de Vega-Lite) y los puntos seleccionados quedan resaltados mientras el resto se atenúa — EN VIVO en la web.",
      "chartType": "selection-scatter",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "selección",
        "highlight",
        "brush",
        "interactivo"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": false,
        "selection": true,
        "mode": "live-click",
        "liveInBrowser": true,
        "bindInputs": [],
        "params": [
          "brush"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/selection-brush-showcase",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/selection-brush-showcase.json",
      "tutorial": null
    },
    {
      "id": "slicer-region-showcase",
      "title": "Slicer con Señales Dinámicas (binding en vivo)",
      "description": "Un dropdown de Vega-Lite (param + bind) que filtra el gráfico por dimensión EN VIVO — el patrón slicer, expresado dentro del spec Deneb.",
      "chartType": "slicer-bar",
      "provider": "vegaLite",
      "providerVersion": "5.16.3",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega-Lite",
        "slicer",
        "param",
        "binding",
        "interactivo"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": false,
        "tooltip": true,
        "contextMenu": false,
        "selection": false,
        "mode": "live-controls",
        "liveInBrowser": true,
        "bindInputs": [
          "select"
        ],
        "params": [
          "regionSel"
        ]
      },
      "difficulty": "intermedio",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/slicer-region-showcase",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/slicer-region-showcase.json",
      "tutorial": null
    },
    {
      "id": "tarjetas-bullet-ibcs",
      "title": "Tarjeta bullet IBCS (Real · Objetivo · Año anterior)",
      "description": "Una tarjeta por KPI, y dentro de cada una un bullet chart al estilo IBCS: la banda gris marca hasta dónde llegó el año anterior, la barra fina es el valor real y el tick negro es el objetivo. A la derecha, el valor y la variación; a la izquierda, el cumplimiento. Un solo golpe de vista responde las tres preguntas que siempre se hacen juntas — cuánto, contra qué plan y contra qué año. Clic en una tarjeta para filtrar el resto del informe.",
      "chartType": "bullet-card",
      "provider": "vega",
      "providerVersion": "5.30.0",
      "tags": [
        "Deneb",
        "Power BI",
        "Vega",
        "tarjeta",
        "KPI",
        "bullet chart",
        "IBCS",
        "cross-filter"
      ],
      "techniques": [],
      "interactivity": {
        "crossFilter": true,
        "tooltip": true,
        "contextMenu": true,
        "selection": true,
        "mode": "live-controls",
        "liveInBrowser": true,
        "bindInputs": [
          "range"
        ],
        "params": [
          "topN"
        ]
      },
      "difficulty": "avanzado",
      "provenance": null,
      "page": "https://csalcedodatabi.com/deneb/tarjetas-bullet-ibcs",
      "specUrl": "https://csalcedodatabi.com/deneb/spec/tarjetas-bullet-ibcs.json",
      "pbixUrl": "https://github.com/CSalcedoDataBI/PowerBI-Deneb/raw/main/Tarjetas_Bullet_IBCS/Tarjetas_Bullet_IBCS.zip",
      "tutorial": null
    }
  ]
}