Saltar al contenido

Deneb #23: Expenses vs Budget

 

La primera versión tiene cuatro (4) barras solapadas una detrás de la otra; pero movidas ligeramente hacia la izquierda o derecha. Además, tiene configurado un formato condicional para colorearse rojo si el gasto supera al presupuesto y, verde si es lo contrario.

Version 1: JSON template to import in Deneb

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"$schema":"https://vega.github.io/schema/vega-lite/v5.json",
"usermeta":{
"deneb":{
"build":"1.0.0.157",
"metaVersion":1,
"provider":"vegaLite"
},
"interactivity":{
"tooltip":true,
"contextMenu":true,
"selection":false,
"dataPointLimit":50
},
"information":{
"name":"Deneb #23 Expenses vs Budget v2",
"description":"This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals. Suggestions: jrescalante@sentidoanalitica.com",
"author":"Sentido Analítica - José Rafael Escalante",
"uuid":"9a219381-4482-46d5-a09a-0927a4745f58",
"generated":"2022-01-23T20:57:33.679Z"
},
"dataset":[
{
"key":"__0__",
"name":"Month",
"description":"String or Text",
"type":"text",
"kind":"column"
},
{
"key":"__1__",
"name":"Expenses",
"description":"Integer",
"type":"numeric",
"kind":"measure"
},
{
"key":"__2__",
"name":"Budget",
"description":"Integer",
"type":"numeric",
"kind":"measure"
},
{
"key":"__3__",
"name":"Variance",
"description":"Percentage",
"type":"numeric",
"kind":"measure"
}
]
},
"config":{
"autosize":{
"type":"fit",
"contains":"padding"
},
"axis":{
"domain":false,
"ticks":false,
"title":true,
"grid":false,
"labelAngle":0
},
"view":{
"stroke":"transparent"
}
},
"data":{
"name":"dataset"
},
"encoding":{
"x":{
"field":"__0__",
"sort":[
"jan",
"feb"
],
"scale":{
"padding":0.4
}
},
"y":{
"type":"quantitative",
"axis":{
"labels":false
}
}
},
"layer":[
{
"description":"Budget with conditional formatting",
"mark":{
"type":"bar",
"xOffset":5
},
"encoding":{
"y":{
"field":"__2__"
},
"fill":{
"condition":{
"test":"datum['__1__'] < datum['__2__']",
"value":"#45ff2f"
},
"value":"#transparent"
}
}
},
{
"description":"__1__",
"mark":{
"type":"bar",
"xOffset":5
},
"encoding":{
"y":{
"field":"__1__"
},
"fill":{
"condition":{
"test":"datum['__1__'] < datum['__2__']",
"value":"#45ff2f"
},
"value":"#fd2600"
}
}
},
{
"description":"__2__",
"mark":{
"type":"bar",
"color":"#e2e2e2",
"stroke":"#7f7f7f"
},
"encoding":{
"y":{
"field":"__2__"
}
}
},
{
"description":" Text percentage",
"mark":{
"type":"text",
"align":"center",
"fill":"black",
"dx":-1,
"yOffset":-6,
"size":10
},
"encoding":{
"text":{
"field":"__3__",
"type":"quantitative",
"format":"0.%",
"formatType":"pbiFormat"
},
"y":{
"field":"__1__"
},
"fill":{
"condition":{
"test":"datum['__1__'] > datum['__2__']",
"value":"red"
},
"value":"black"
}
}
},
{
"description":"__1__",
"mark":{
"type":"bar",
"color":"#404040",
"xOffset":10
},
"encoding":{
"y":{
"field":"__1__"
}
}
},
{
"description":" Text integer",
"mark":{
"type":"text",
"align":"center",
"fill":"white",
"dx":10,
"yOffset":14,
"size":10
},
"encoding":{
"text":{
"field":"__1__",
"type":"quantitative",
"format":"0,0",
"formatType":"pbiFormat"
},
"y":{
"field":"__1__"
}
}
}
]
}
{ "$schema":"https://vega.github.io/schema/vega-lite/v5.json", "usermeta":{ "deneb":{ "build":"1.0.0.157", "metaVersion":1, "provider":"vegaLite" }, "interactivity":{ "tooltip":true, "contextMenu":true, "selection":false, "dataPointLimit":50 }, "information":{ "name":"Deneb #23 Expenses vs Budget v2", "description":"This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals. Suggestions: jrescalante@sentidoanalitica.com", "author":"Sentido Analítica - José Rafael Escalante", "uuid":"9a219381-4482-46d5-a09a-0927a4745f58", "generated":"2022-01-23T20:57:33.679Z" }, "dataset":[ { "key":"__0__", "name":"Month", "description":"String or Text", "type":"text", "kind":"column" }, { "key":"__1__", "name":"Expenses", "description":"Integer", "type":"numeric", "kind":"measure" }, { "key":"__2__", "name":"Budget", "description":"Integer", "type":"numeric", "kind":"measure" }, { "key":"__3__", "name":"Variance", "description":"Percentage", "type":"numeric", "kind":"measure" } ] }, "config":{ "autosize":{ "type":"fit", "contains":"padding" }, "axis":{ "domain":false, "ticks":false, "title":true, "grid":false, "labelAngle":0 }, "view":{ "stroke":"transparent" } }, "data":{ "name":"dataset" }, "encoding":{ "x":{ "field":"__0__", "sort":[ "jan", "feb" ], "scale":{ "padding":0.4 } }, "y":{ "type":"quantitative", "axis":{ "labels":false } } }, "layer":[ { "description":"Budget with conditional formatting", "mark":{ "type":"bar", "xOffset":5 }, "encoding":{ "y":{ "field":"__2__" }, "fill":{ "condition":{ "test":"datum['__1__'] < datum['__2__']", "value":"#45ff2f" }, "value":"#transparent" } } }, { "description":"__1__", "mark":{ "type":"bar", "xOffset":5 }, "encoding":{ "y":{ "field":"__1__" }, "fill":{ "condition":{ "test":"datum['__1__'] < datum['__2__']", "value":"#45ff2f" }, "value":"#fd2600" } } }, { "description":"__2__", "mark":{ "type":"bar", "color":"#e2e2e2", "stroke":"#7f7f7f" }, "encoding":{ "y":{ "field":"__2__" } } }, { "description":" Text percentage", "mark":{ "type":"text", "align":"center", "fill":"black", "dx":-1, "yOffset":-6, "size":10 }, "encoding":{ "text":{ "field":"__3__", "type":"quantitative", "format":"0.%", "formatType":"pbiFormat" }, "y":{ "field":"__1__" }, "fill":{ "condition":{ "test":"datum['__1__'] > datum['__2__']", "value":"red" }, "value":"black" } } }, { "description":"__1__", "mark":{ "type":"bar", "color":"#404040", "xOffset":10 }, "encoding":{ "y":{ "field":"__1__" } } }, { "description":" Text integer", "mark":{ "type":"text", "align":"center", "fill":"white", "dx":10, "yOffset":14, "size":10 }, "encoding":{ "text":{ "field":"__1__", "type":"quantitative", "format":"0,0", "formatType":"pbiFormat" }, "y":{ "field":"__1__" } } } ] }
{
   "$schema":"https://vega.github.io/schema/vega-lite/v5.json",
   "usermeta":{
      "deneb":{
         "build":"1.0.0.157",
         "metaVersion":1,
         "provider":"vegaLite"
      },
      "interactivity":{
         "tooltip":true,
         "contextMenu":true,
         "selection":false,
         "dataPointLimit":50
      },
      "information":{
         "name":"Deneb #23 Expenses vs Budget v2",
         "description":"This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals. Suggestions: jrescalante@sentidoanalitica.com",
         "author":"Sentido Analítica - José Rafael Escalante",
         "uuid":"9a219381-4482-46d5-a09a-0927a4745f58",
         "generated":"2022-01-23T20:57:33.679Z"
      },
      "dataset":[
         {
            "key":"__0__",
            "name":"Month",
            "description":"String or Text",
            "type":"text",
            "kind":"column"
         },
         {
            "key":"__1__",
            "name":"Expenses",
            "description":"Integer",
            "type":"numeric",
            "kind":"measure"
         },
         {
            "key":"__2__",
            "name":"Budget",
            "description":"Integer",
            "type":"numeric",
            "kind":"measure"
         },
         {
            "key":"__3__",
            "name":"Variance",
            "description":"Percentage",
            "type":"numeric",
            "kind":"measure"
         }
      ]
   },
   "config":{
      "autosize":{
         "type":"fit",
         "contains":"padding"
      },
      "axis":{
         "domain":false,
         "ticks":false,
         "title":true,
         "grid":false,
         "labelAngle":0
      },
      "view":{
         "stroke":"transparent"
      }
   },
   "data":{
      "name":"dataset"
   },
   "encoding":{
      "x":{
         "field":"__0__",
         "sort":[
            "jan",
            "feb"
         ],
         "scale":{
            "padding":0.4
         }
      },
      "y":{
         "type":"quantitative",
         "axis":{
            "labels":false
         }
      }
   },
   "layer":[
      {
         "description":"Budget with conditional formatting",
         "mark":{
            "type":"bar",
            "xOffset":5
         },
         "encoding":{
            "y":{
               "field":"__2__"
            },
            "fill":{
               "condition":{
                  "test":"datum['__1__'] < datum['__2__']",
                  "value":"#45ff2f"
               },
               "value":"#transparent"
            }
         }
      },
      {
         "description":"__1__",
         "mark":{
            "type":"bar",
            "xOffset":5
         },
         "encoding":{
            "y":{
               "field":"__1__"
            },
            "fill":{
               "condition":{
                  "test":"datum['__1__'] < datum['__2__']",
                  "value":"#45ff2f"
               },
               "value":"#fd2600"
            }
         }
      },
      {
         "description":"__2__",
         "mark":{
            "type":"bar",
            "color":"#e2e2e2",
            "stroke":"#7f7f7f"
         },
         "encoding":{
            "y":{
               "field":"__2__"
            }
         }
      },
      {
         "description":" Text percentage",
         "mark":{
            "type":"text",
            "align":"center",
            "fill":"black",
            "dx":-1,
            "yOffset":-6,
            "size":10
         },
         "encoding":{
            "text":{
               "field":"__3__",
               "type":"quantitative",
               "format":"0.%",
               "formatType":"pbiFormat"
            },
            "y":{
               "field":"__1__"
            },
            "fill":{
               "condition":{
                  "test":"datum['__1__'] > datum['__2__']",
                  "value":"red"
               },
               "value":"black"
            }
         }
      },
      {
         "description":"__1__",
         "mark":{
            "type":"bar",
            "color":"#404040",
            "xOffset":10
         },
         "encoding":{
            "y":{
               "field":"__1__"
            }
         }
      },
      {
         "description":" Text integer",
         "mark":{
            "type":"text",
            "align":"center",
            "fill":"white",
            "dx":10,
            "yOffset":14,
            "size":10
         },
         "encoding":{
            "text":{
               "field":"__1__",
               "type":"quantitative",
               "format":"0,0",
               "formatType":"pbiFormat"
            },
            "y":{
               "field":"__1__"
            }
         }
      }
   ]
}

 

La segunda versión es igual a la primera; solo tiene configurado una opacidad al 10% y el cross-filtering activado.

Version 2 with Cross filtering + Opacity at 10%: JSON template to import in Deneb

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"usermeta": {
"deneb": {
"build": "1.0.0.157",
"metaVersion": 1,
"provider": "vegaLite"
},
"interactivity": {
"tooltip": true,
"contextMenu": true,
"selection": true,
"dataPointLimit": 50
},
"information": {
"name": "Deneb #23 Expenses vs Budget v2",
"description": "This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals, with Cross Filtering and Opacity. Suggestions: jrescalante@sentidoanalitica.com",
"author": "Sentido Analítica - José Rafael Escalante",
"uuid": "2e314914-ff02-47c7-be0f-cb3fdcca0f41",
"generated": "2022-01-24T16:16:10.691Z"
},
"dataset": [
{
"key": "__0__",
"name": "Month",
"description": "",
"type": "text",
"kind": "column"
},
{
"key": "__1__",
"name": "Expenses",
"description": "",
"type": "numeric",
"kind": "measure"
},
{
"key": "__2__",
"name": "Budget",
"description": "",
"type": "numeric",
"kind": "measure"
},
{
"key": "__3__",
"name": "Variance",
"description": "",
"type": "numeric",
"kind": "measure"
}
]
},
"config": {
"autosize": {
"type": "fit",
"contains": "padding"
},
"axis": {
"domain": false,
"ticks": false,
"title": true,
"grid": false,
"labelAngle": 0
},
"view": {"stroke": "transparent"}
},
"data": {"name": "dataset"},
"encoding": {
"x": {
"field": "__0__",
"sort": ["jan", "feb"],
"scale": {"padding": 0.4}
},
"y": {
"type": "quantitative",
"axis": {"labels": false}
}
},
"layer": [
{
"description": "Budget with conditional formatting",
"mark": {
"type": "bar",
"xOffset": 5
},
"encoding": {
"y": {"field": "__2__"},
"fill": {
"condition": {
"test": "datum['__1__'] < datum['__2__']",
"value": "#45ff2f"
},
"value": "#transparent"
},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
},
{
"description": "__1__",
"mark": {
"type": "bar",
"xOffset": 5
},
"encoding": {
"y": {"field": "__1__"},
"fill": {
"condition": {
"test": "datum['__1__'] < datum['__2__']",
"value": "transparent"
},
"value": "#fd2600"
},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
},
{
"description": "__2__",
"mark": {
"type": "bar",
"color": "#e2e2e2",
"stroke": "#7f7f7f"
},
"encoding": {
"y": {"field": "__2__"},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
},
{
"description": " Text percentage",
"mark": {
"type": "text",
"align": "center",
"fill": "black",
"dx": -1,
"yOffset": -6,
"size": 10
},
"encoding": {
"text": {
"field": "__3__",
"type": "quantitative",
"format": "0.%",
"formatType": "pbiFormat"
},
"y": {"field": "__1__"},
"fill": {
"condition": {
"test": "datum['__1__'] > datum['__2__']",
"value": "red"
},
"value": "black"
},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
},
{
"description": "__1__",
"mark": {
"type": "bar",
"color": "#404040",
"xOffset": 10
},
"encoding": {
"y": {"field": "__1__"},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
},
{
"description": " Text integer",
"mark": {
"type": "text",
"align": "center",
"fill": "white",
"dx": 10,
"yOffset": 14,
"size": 10
},
"encoding": {
"text": {
"field": "__1__",
"type": "quantitative",
"format": "0,0",
"formatType": "pbiFormat"
},
"y": {"field": "__1__"},
"opacity": {
"condition": {
"test": {
"field": "__selected__",
"equal": "off"
},
"value": 0.1
}
}
}
}
]
}
{ "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "usermeta": { "deneb": { "build": "1.0.0.157", "metaVersion": 1, "provider": "vegaLite" }, "interactivity": { "tooltip": true, "contextMenu": true, "selection": true, "dataPointLimit": 50 }, "information": { "name": "Deneb #23 Expenses vs Budget v2", "description": "This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals, with Cross Filtering and Opacity. Suggestions: jrescalante@sentidoanalitica.com", "author": "Sentido Analítica - José Rafael Escalante", "uuid": "2e314914-ff02-47c7-be0f-cb3fdcca0f41", "generated": "2022-01-24T16:16:10.691Z" }, "dataset": [ { "key": "__0__", "name": "Month", "description": "", "type": "text", "kind": "column" }, { "key": "__1__", "name": "Expenses", "description": "", "type": "numeric", "kind": "measure" }, { "key": "__2__", "name": "Budget", "description": "", "type": "numeric", "kind": "measure" }, { "key": "__3__", "name": "Variance", "description": "", "type": "numeric", "kind": "measure" } ] }, "config": { "autosize": { "type": "fit", "contains": "padding" }, "axis": { "domain": false, "ticks": false, "title": true, "grid": false, "labelAngle": 0 }, "view": {"stroke": "transparent"} }, "data": {"name": "dataset"}, "encoding": { "x": { "field": "__0__", "sort": ["jan", "feb"], "scale": {"padding": 0.4} }, "y": { "type": "quantitative", "axis": {"labels": false} } }, "layer": [ { "description": "Budget with conditional formatting", "mark": { "type": "bar", "xOffset": 5 }, "encoding": { "y": {"field": "__2__"}, "fill": { "condition": { "test": "datum['__1__'] < datum['__2__']", "value": "#45ff2f" }, "value": "#transparent" }, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } }, { "description": "__1__", "mark": { "type": "bar", "xOffset": 5 }, "encoding": { "y": {"field": "__1__"}, "fill": { "condition": { "test": "datum['__1__'] < datum['__2__']", "value": "transparent" }, "value": "#fd2600" }, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } }, { "description": "__2__", "mark": { "type": "bar", "color": "#e2e2e2", "stroke": "#7f7f7f" }, "encoding": { "y": {"field": "__2__"}, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } }, { "description": " Text percentage", "mark": { "type": "text", "align": "center", "fill": "black", "dx": -1, "yOffset": -6, "size": 10 }, "encoding": { "text": { "field": "__3__", "type": "quantitative", "format": "0.%", "formatType": "pbiFormat" }, "y": {"field": "__1__"}, "fill": { "condition": { "test": "datum['__1__'] > datum['__2__']", "value": "red" }, "value": "black" }, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } }, { "description": "__1__", "mark": { "type": "bar", "color": "#404040", "xOffset": 10 }, "encoding": { "y": {"field": "__1__"}, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } }, { "description": " Text integer", "mark": { "type": "text", "align": "center", "fill": "white", "dx": 10, "yOffset": 14, "size": 10 }, "encoding": { "text": { "field": "__1__", "type": "quantitative", "format": "0,0", "formatType": "pbiFormat" }, "y": {"field": "__1__"}, "opacity": { "condition": { "test": { "field": "__selected__", "equal": "off" }, "value": 0.1 } } } } ] }
{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "usermeta": {
    "deneb": {
      "build": "1.0.0.157",
      "metaVersion": 1,
      "provider": "vegaLite"
    },
    "interactivity": {
      "tooltip": true,
      "contextMenu": true,
      "selection": true,
      "dataPointLimit": 50
    },
    "information": {
      "name": "Deneb #23 Expenses vs Budget v2",
      "description": "This is a bar chart with a style similar to IBCS (International Business Communication Standards) used by Zebra BI or Inforiver Custom Visuals, with Cross Filtering and Opacity. Suggestions: jrescalante@sentidoanalitica.com",
      "author": "Sentido Analítica - José Rafael Escalante",
      "uuid": "2e314914-ff02-47c7-be0f-cb3fdcca0f41",
      "generated": "2022-01-24T16:16:10.691Z"
    },
    "dataset": [
      {
        "key": "__0__",
        "name": "Month",
        "description": "",
        "type": "text",
        "kind": "column"
      },
      {
        "key": "__1__",
        "name": "Expenses",
        "description": "",
        "type": "numeric",
        "kind": "measure"
      },
      {
        "key": "__2__",
        "name": "Budget",
        "description": "",
        "type": "numeric",
        "kind": "measure"
      },
      {
        "key": "__3__",
        "name": "Variance",
        "description": "",
        "type": "numeric",
        "kind": "measure"
      }
    ]
  },
  "config": {
    "autosize": {
      "type": "fit",
      "contains": "padding"
    },
    "axis": {
      "domain": false,
      "ticks": false,
      "title": true,
      "grid": false,
      "labelAngle": 0
    },
    "view": {"stroke": "transparent"}
  },
  "data": {"name": "dataset"},
  "encoding": {
    "x": {
      "field": "__0__",
      "sort": ["jan", "feb"],
      "scale": {"padding": 0.4}
    },
    "y": {
      "type": "quantitative",
      "axis": {"labels": false}
    }
  },
  "layer": [
    {
      "description": "Budget with conditional formatting",
      "mark": {
        "type": "bar",
        "xOffset": 5
      },
      "encoding": {
        "y": {"field": "__2__"},
        "fill": {
          "condition": {
            "test": "datum['__1__'] < datum['__2__']",
            "value": "#45ff2f"
          },
          "value": "#transparent"
        },
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    },
    {
      "description": "__1__",
      "mark": {
        "type": "bar",
        "xOffset": 5
      },
      "encoding": {
        "y": {"field": "__1__"},
        "fill": {
          "condition": {
            "test": "datum['__1__'] < datum['__2__']",
            "value": "transparent"
          },
          "value": "#fd2600"
        },
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    },
    {
      "description": "__2__",
      "mark": {
        "type": "bar",
        "color": "#e2e2e2",
        "stroke": "#7f7f7f"
      },
      "encoding": {
        "y": {"field": "__2__"},
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    },
    {
      "description": " Text percentage",
      "mark": {
        "type": "text",
        "align": "center",
        "fill": "black",
        "dx": -1,
        "yOffset": -6,
        "size": 10
      },
      "encoding": {
        "text": {
          "field": "__3__",
          "type": "quantitative",
          "format": "0.%",
          "formatType": "pbiFormat"
        },
        "y": {"field": "__1__"},
        "fill": {
          "condition": {
            "test": "datum['__1__'] > datum['__2__']",
            "value": "red"
          },
          "value": "black"
        },
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    },
    {
      "description": "__1__",
      "mark": {
        "type": "bar",
        "color": "#404040",
        "xOffset": 10
      },
      "encoding": {
        "y": {"field": "__1__"},
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    },
    {
      "description": " Text integer",
      "mark": {
        "type": "text",
        "align": "center",
        "fill": "white",
        "dx": 10,
        "yOffset": 14,
        "size": 10
      },
      "encoding": {
        "text": {
          "field": "__1__",
          "type": "quantitative",
          "format": "0,0",
          "formatType": "pbiFormat"
        },
        "y": {"field": "__1__"},
        "opacity": {
          "condition": {
            "test": {
              "field": "__selected__",
              "equal": "off"
            },
            "value": 0.1
          }
        }
      }
    }
  ]
}

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *