Skip to content

Instantly share code, notes, and snippets.

@aaizemberg
Created February 27, 2018 18:24
Show Gist options
  • Save aaizemberg/a1211d5942abb430e4216da32a918250 to your computer and use it in GitHub Desktop.
Save aaizemberg/a1211d5942abb430e4216da32a918250 to your computer and use it in GitHub Desktop.
Probando Brunel
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Probando Brunel"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>source</th>\n",
" <th>target</th>\n",
" <th>value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>VILLA URQUIZA</td>\n",
" <td>VILLA URQUIZA</td>\n",
" <td>128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>VILLA CRESPO</td>\n",
" <td>PALERMO</td>\n",
" <td>174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>VILLA CRESPO</td>\n",
" <td>ALMAGRO</td>\n",
" <td>128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>SAN NICOLAS</td>\n",
" <td>PALERMO</td>\n",
" <td>101</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>RECOLETA</td>\n",
" <td>RETIRO</td>\n",
" <td>112</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" source target value\n",
"0 VILLA URQUIZA VILLA URQUIZA 128\n",
"1 VILLA CRESPO PALERMO 174\n",
"2 VILLA CRESPO ALMAGRO 128\n",
"3 SAN NICOLAS PALERMO 101\n",
"4 RECOLETA RETIRO 112"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import brunel\n",
"url = 'https://raw.githubusercontent.com/aaizemberg/vis/gh-pages/bataxi/desde_hasta_m100.tsv'\n",
"barrios = pd.read_csv( url , sep='\\t')\n",
"barrios.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!--\n",
" ~ Copyright (c) 2015 IBM Corporation and others.\n",
" ~\n",
" ~ Licensed under the Apache License, Version 2.0 (the \"License\");\n",
" ~ You may not use this file except in compliance with the License.\n",
" ~ You may obtain a copy of the License at\n",
" ~\n",
" ~ http://www.apache.org/licenses/LICENSE-2.0\n",
" ~\n",
" ~ Unless required by applicable law or agreed to in writing, software\n",
" ~ distributed under the License is distributed on an \"AS IS\" BASIS,\n",
" ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
" ~ See the License for the specific language governing permissions and\n",
" ~ limitations under the License.\n",
" -->\n",
"\n",
"\n",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.2.3.css\">\n",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/sumoselect.css\">\n",
"\n",
"<style>\n",
" \n",
"</style>\n",
"\n",
"<div id=\"controlsid2370b606-1beb-11e8-b013-360c827e6e8d\" class=\"brunel\"/>\n",
"<svg id=\"visid2370b3c2-1beb-11e8-b013-360c827e6e8d\" width=\"500\" height=\"400\"></svg>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"/*\n",
" * Copyright (c) 2015 IBM Corporation and others.\n",
" *\n",
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n",
" * You may not use this file except in compliance with the License.\n",
" * You may obtain a copy of the License at\n",
" *\n",
" * http://www.apache.org/licenses/LICENSE-2.0\n",
" *\n",
" * Unless required by applicable law or agreed to in writing, software\n",
" * distributed under the License is distributed on an \"AS IS\" BASIS,\n",
" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
" * See the License for the specific language governing permissions and\n",
" * limitations under the License.\n",
" */\n",
"\n",
"require.config({\n",
" waitSeconds: 60,\n",
" paths: {\n",
" 'd3': '//cdnjs.cloudflare.com/ajax/libs/d3/4.2.1/d3.min',\n",
" 'topojson': '//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.20/topojson.min',\n",
" 'brunel' : '/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.2.3.min',\n",
" 'brunelControls' : '/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.controls.2.3.min'\n",
" },\n",
" shim: {\n",
" 'brunel' : {\n",
" exports: 'BrunelD3',\n",
" deps: ['d3', 'topojson'],\n",
" init: function() {\n",
" return {\n",
" BrunelD3 : BrunelD3,\n",
" BrunelData : BrunelData\n",
" }\n",
" }\n",
" },\n",
" 'brunelControls' : {\n",
" exports: 'BrunelEventHandlers',\n",
" init: function() {\n",
" return {\n",
" BrunelEventHandlers: BrunelEventHandlers,\n",
" BrunelJQueryControlFactory: BrunelJQueryControlFactory\n",
" }\n",
" }\n",
" }\n",
"\n",
" }\n",
"\n",
"});\n",
"\n",
"require([\"d3\"], function(d3) {\n",
" require([\"brunel\", \"brunelControls\"], function(brunel, brunelControls) {\n",
" function BrunelVis(visId) {\n",
" \"use strict\"; // strict mode\n",
" var datasets = [], // array of datasets for the original data\n",
" pre = function(d, i) { return d }, // default pre-process does nothing\n",
" post = function(d, i) { return d }, // default post-process does nothing\n",
" transitionTime = 200, // transition time for animations\n",
" charts = [], // the charts in the system\n",
" vis = d3.select('#' + visId).attr('class', 'brunel'); // the SVG container\n",
"\n",
" BrunelD3.addDefinitions(vis); // ensure standard symbols present\n",
"\n",
" // Define chart #1 in the visualization //////////////////////////////////////////////////////////\n",
"\n",
" charts[0] = function(parentNode, filterRows) {\n",
" var geom = BrunelD3.geometry(parentNode || vis.node(), 0, 0, 1, 1, 0, 0, 0, 115),\n",
" elements = []; // array of elements in this chart\n",
"\n",
" // Define groups for the chart parts ///////////////////////////////////////////////////////////\n",
"\n",
" var chart = vis.append('g').attr('class', 'chart1')\n",
" .attr('transform','translate(' + geom.chart_left + ',' + geom.chart_top + ')');\n",
" var overlay = chart.append('g').attr('class', 'element').attr('class', 'overlay');\n",
" var zoom = d3.zoom().scaleExtent([1/3,3]);\n",
" var zoomNode = overlay.append('rect').attr('class', 'overlay')\n",
" .attr('x', geom.inner_left).attr('y', geom.inner_top)\n",
" .attr('width', geom.inner_rawWidth).attr('height', geom.inner_rawHeight)\n",
" .style('cursor', 'default')\n",
" .node();\n",
" zoomNode.__zoom = d3.zoomIdentity;\n",
" chart.append('rect').attr('class', 'background').attr('width', geom.chart_right-geom.chart_left).attr('height', geom.chart_bottom-geom.chart_top);\n",
" var interior = chart.append('g').attr('class', 'interior zoomNone')\n",
" .attr('transform','translate(' + geom.inner_left + ',' + geom.inner_top + ')')\n",
" .attr('clip-path', 'url(#clip_visid2370b3c2-1beb-11e8-b013-360c827e6e8d_chart1_inner)');\n",
" interior.append('rect').attr('class', 'inner').attr('width', geom.inner_width).attr('height', geom.inner_height);\n",
" var gridGroup = interior.append('g').attr('class', 'grid');\n",
" var legends = chart.append('g').attr('class', 'legend')\n",
" .attr('transform','translate(' + (geom.chart_right-geom.chart_left - 3) + ',' + 0 + ')');\n",
" vis.append('clipPath').attr('id', 'clip_visid2370b3c2-1beb-11e8-b013-360c827e6e8d_chart1_inner').append('rect')\n",
" .attr('x', 0).attr('y', 0)\n",
" .attr('width', geom.inner_rawWidth+1).attr('height', geom.inner_rawHeight+1);\n",
" var scale_x = d3.scaleLinear(), scale_y = d3.scaleLinear();\n",
" var base_scales = [scale_x, scale_y]; // untransformed original scales\n",
" zoom.on('zoom', function(t, time) {\n",
" t = t || d3.event.transform;\n",
" zoomNode.__zoom = t;\n",
" interior.attr('class', 'interior ' + BrunelD3.zoomLabel(t.k));;\n",
" build(time || -1);\n",
" });\n",
"\n",
" // Define element #1 ///////////////////////////////////////////////////////////////////////////\n",
"\n",
" elements[0] = function() {\n",
" var original, processed, // data sets passed in and then transformed\n",
" element, data, // brunel element information and brunel data\n",
" selection, merged; // d3 selection and merged selection\n",
" var elementGroup = interior.append('g').attr('class', 'element1')\n",
" .attr('transform','translate(' + geom.inner_width/2 + ',' + geom.inner_height/2 + ')'),\n",
" main = elementGroup.append('g').attr('class', 'main'),\n",
" labels = BrunelD3.undoTransform(elementGroup.append('g').attr('class', 'labels').attr('aria-hidden', 'true'), elementGroup),\n",
" diagramExtras = elementGroup.append('g').attr('class', 'extras');\n",
"\n",
" function makeData() {\n",
" original = datasets[0];\n",
" if (filterRows) original = original.retainRows(filterRows);\n",
" processed = pre(original, 0);\n",
" processed = post(processed, 0);\n",
" var f0 = processed.field('source'),\n",
" f1 = processed.field('target'),\n",
" f2 = processed.field('value'),\n",
" f3 = processed.field('#row'),\n",
" f4 = processed.field('#selection');\n",
" var keyFunc = function(d) { return f0.value(d)+ '|' + f1.value(d) };\n",
" data = {\n",
" source: function(d) { return f0.value(d.row) },\n",
" target: function(d) { return f1.value(d.row) },\n",
" value: function(d) { return f2.value(d.row) },\n",
" $row: function(d) { return f3.value(d.row) },\n",
" $selection: function(d) { return f4.value(d.row) },\n",
" source_f: function(d) { return f0.valueFormatted(d.row) },\n",
" target_f: function(d) { return f1.valueFormatted(d.row) },\n",
" value_f: function(d) { return f2.valueFormatted(d.row) },\n",
" $row_f: function(d) { return f3.valueFormatted(d.row) },\n",
" $selection_f: function(d) { return f4.valueFormatted(d.row) },\n",
" _split: function(d) { return f0.value(d.row)+ '|' + f2.value(d.row) },\n",
" _key: keyFunc,\n",
" _rows: BrunelD3.makeRowsWithKeys(keyFunc, processed.rowCount())\n",
" };\n",
" }\n",
" // Aesthetic Functions\n",
" var scale_color = d3.scaleOrdinal()\n",
" .domain(['ALMAGRO', 'BALVANERA', 'BELGRANO', 'CABALLITO', 'COLEGIALES', 'PALERMO', 'RECOLETA', 'SAN NICOLAS', 'VILLA CRESPO', 'VILLA URQUIZA'])\n",
" .range([ '#00538A', '#C10020', '#F4C800', '#007D34', '#803E75', '#FF6800', \n",
" '#817066', '#FFB300', '#F6768E', '#93AA00', '#53377A', '#FF8E00', '#B32851', \n",
" '#CEA262', '#FF7A5C', '#7F180D', '#593315', '#F13A13', '#232C16']);\n",
" var color = function(d) { return scale_color(data.source(d)) };\n",
" var scale_size = d3.scaleLinear().domain([0, 709.00007])\n",
" .range([ 0.001, 1]);\n",
" var size = function(d) { return scale_size(data.value(d)) };\n",
" legends._legend = legends._legend || { title: ['Source'], \n",
" ticks: scale_color.domain()};\n",
" legends._legend.color = scale_color;\n",
"\n",
" // Build element from data ///////////////////////////////////////////////////////////////////\n",
"\n",
" function build(transitionMillis) {\n",
" element = elements[0];\n",
" // Define chord data structures using Brunel's enhanced chord diagram builder\n",
" var chords = BrunelData.diagram_Chord.make(processed,'source', 'target', \n",
" 'value');\n",
" var arc_width = 9.6; // width of exterior arc\n",
" function keyFunction(d) { return d.source.index + '|' + d.target.index };// special key function for the edges\n",
" var R = scale_x(geom.inner_radius)-scale_x(0), svgTrans = 'translate(' + scale_x(0) + ',' + scale_y(0) + ')';\n",
" main.attr('class', 'diagram chord');\n",
"\n",
" // Define selection entry operations\n",
" function initialState(selection) {\n",
" selection\n",
" .attr('class', 'element edge filled')\n",
" }\n",
"\n",
" // Define selection update operations on merged data\n",
" function updateState(selection) {\n",
" selection\n",
" .attr('d', d3.ribbon().radius(R-arc_width))\n",
" .attr('class', 'element edge')\n",
" .attr('transform', svgTrans)\n",
" .filter(BrunelD3.hasData) // following only performed for data items\n",
" .style('fill', color)\n",
"\n",
" // Add in the arcs on the outside for the groups\n",
" diagramExtras.attr('class', 'diagram chord arcs');\n",
" var arcGroup = diagramExtras.selectAll('g').data(chords.groups),\n",
" addedArcGroups = arcGroup.enter().append('g'),\n",
" arcPath = d3.arc().innerRadius(R - arc_width).outerRadius(R);\n",
" addedArcGroups.append('path').attr('class', 'box')\n",
" .attr('id', function(d, i) { return 'arc' + i; });\n",
" addedArcGroups.append('text').attr('class', 'label')\n",
" .attr('dy', arc_width*0.72).attr('class', 'label')\n",
" .append('textPath').attr('xlink:href', function(d, i) { return '#arc' + i });\n",
" var mergedArcGroups = addedArcGroups.merge(arcGroup);\n",
" BrunelD3.tween(mergedArcGroups, transitionMillis, function(d, i) { \n",
" var group = d3.select(this);\n",
" group.attr('transform', svgTrans);\n",
" return function() {\n",
" group.select('path').attr('d', arcPath(d));\n",
" group.select('textPath').text(d.name);\n",
" BrunelD3.centerInWedge(group.select('text'), arc_width);\n",
" }\n",
" });\n",
"\n",
" BrunelD3.transition(arcGroup.exit(), transitionMillis/3)\n",
" .style('opacity', 0.5).each( function() {\n",
" this.remove(); BrunelD3.removeLabels(this); \n",
" });\n",
" ;\n",
" }\n",
"\n",
" // Define labeling for the selection\n",
" function label(selection, transitionMillis) {\n",
"\n",
" var tooltipLabeling = {\n",
" index: -1, method: 'poly', location: ['center', 'center'], inside: true, align: 'middle', pad: 0, dy: 0.3,\n",
" fit: true, granularity: 0,\n",
" content: function(d) {\n",
" return d.row == null ? null : '<span class=\"title\">Source: </span>'\n",
"\t\t\t+ '<span class=\"field\">' + data.source_f(d) + '</span>'\n",
"\t\t\t+ '<br/>'\n",
"\t\t\t+ '<span class=\"title\">Target: </span>'\n",
"\t\t\t+ '<span class=\"field\">' + data.target_f(d) + '</span>'\n",
"\t\t\t+ '<br/>'\n",
"\t\t\t+ '<span class=\"title\">Value: </span>'\n",
"\t\t\t+ '<span class=\"field\">' + data.value_f(d) + '</span>'\n",
" }\n",
" };\n",
" BrunelD3.addTooltip(selection, tooltipLabeling, geom);\n",
" }\n",
" // Create selections, set the initial state and transition updates\n",
" selection = main.selectAll('.element').data(chords.chords, function(d) { return d.source.index + '|' + d.target.index });\n",
" var added = selection.enter().append('path');\n",
" merged = selection.merge(added);\n",
" initialState(added);\n",
" selection.filter(BrunelD3.hasData)\n",
" .classed('selected', BrunelD3.isSelected(data))\n",
" .filter(BrunelD3.isSelected(data)).raise();\n",
" updateState(BrunelD3.transition(merged, transitionMillis));\n",
" label(merged, transitionMillis);\n",
"\n",
" BrunelD3.transition(selection.exit(), transitionMillis/3)\n",
" .style('opacity', 0.5).each( function() {\n",
" this.remove(); BrunelD3.removeLabels(this); \n",
" });\n",
" }\n",
"\n",
" return {\n",
" data: function() { return processed },\n",
" original: function() { return original },\n",
" internal: function() { return data },\n",
" selection: function() { return merged },\n",
" makeData: makeData,\n",
" build: build,\n",
" chart: function() { return charts[0] },\n",
" group: function() { return elementGroup },\n",
" fields: {\n",
" x: ['source'],\n",
" y: ['target'],\n",
" key: ['source', 'target'],\n",
" color: ['source'],\n",
" size: ['value']\n",
" }\n",
" };\n",
" }();\n",
"\n",
" function build(time, noData) {\n",
" var first = elements[0].data() == null;\n",
" if (first) time = 0; // no transition for first call\n",
" if ((first || time > -1) && !noData) {\n",
" elements[0].makeData();\n",
" BrunelD3.addLegend(legends, legends._legend);\n",
" }\n",
" elements[0].build(time);\n",
" }\n",
"\n",
" // Expose the following components of the chart\n",
" return {\n",
" elements : elements,\n",
" interior : interior,\n",
" zoom: function(params, time) {\n",
" if (params) zoom.on('zoom').call(zoomNode, params, time);\n",
" return d3.zoomTransform(zoomNode);\n",
" },\n",
" build : build\n",
" };\n",
" }();\n",
"\n",
" function setData(rowData, i) { datasets[i||0] = BrunelD3.makeData(rowData) }\n",
" function updateAll(time) { charts.forEach(function(x) {x.build(time || 0)}) }\n",
" function buildAll() {\n",
" for (var i=0;i<arguments.length;i++) setData(arguments[i], i);\n",
" updateAll(transitionTime);\n",
" }\n",
"\n",
" return {\n",
" dataPreProcess: function(f) { if (f) pre = f; return pre },\n",
" dataPostProcess: function(f) { if (f) post = f; return post },\n",
" data: function(d,i) { if (d) setData(d,i); return datasets[i||0] },\n",
" visId: visId,\n",
" build: buildAll,\n",
" rebuild: updateAll,\n",
" charts: charts\n",
" }\n",
"}\n",
"\n",
"// Data Tables /////////////////////////////////////////////////////////////////////////////////////\n",
"\n",
"var table1 = {\n",
" summarized: false,\n",
" names: ['source', 'target', 'value'], \n",
" options: ['string', 'string', 'numeric'], \n",
" rows: [['VILLA URQUIZA', 'VILLA URQUIZA', 128], ['VILLA CRESPO', 'PALERMO', 174],\n",
" ['VILLA CRESPO', 'ALMAGRO', 128], ['SAN NICOLAS', 'PALERMO', 101], ['RECOLETA', 'RETIRO', 112],\n",
" ['PALERMO', 'RETIRO', 104], ['PALERMO', 'PALERMO', 709], ['PALERMO', 'CABALLITO', 146],\n",
" ['PALERMO', 'BELGRANO', 126], ['PALERMO', 'BALVANERA', 106], ['PALERMO', 'ALMAGRO', 117],\n",
" ['COLEGIALES', 'PALERMO', 127], ['CABALLITO', 'FLORES', 108], ['CABALLITO', 'CABALLITO', 201],\n",
" ['CABALLITO', 'ALMAGRO', 113], ['BELGRANO', 'PALERMO', 175], ['BELGRANO', 'BELGRANO', 122],\n",
" ['BALVANERA', 'SAN NICOLAS', 139], ['BALVANERA', 'RECOLETA', 117], ['BALVANERA', 'PALERMO', 134],\n",
" ['BALVANERA', 'BALVANERA', 139], ['ALMAGRO', 'PALERMO', 184], ['ALMAGRO', 'CABALLITO', 110]]\n",
"};\n",
"\n",
"// Call Code to Build the system ///////////////////////////////////////////////////////////////////\n",
"\n",
"var v = new BrunelVis('visid2370b3c2-1beb-11e8-b013-360c827e6e8d');\n",
"v.build(table1);\n",
"\n",
" });\n",
"});"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%brunel data('barrios') chord x(source) y(target) size(value) color(source) tooltip(#all)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>monto_contrato</th>\n",
" <th>area_responsable</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>34</td>\n",
" <td>3183200000</td>\n",
" <td>Ministerio De Desarrollo Urbano Y Transporte</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>42</td>\n",
" <td>2227408083</td>\n",
" <td>Ministerio De Desarrollo Urbano Y Transporte</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>43</td>\n",
" <td>2136614835</td>\n",
" <td>Ministerio De Desarrollo Urbano Y Transporte</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>33</td>\n",
" <td>1640500000</td>\n",
" <td>Ministerio De Desarrollo Urbano Y Transporte</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>67</td>\n",
" <td>1585394079</td>\n",
" <td>Ministerio De Desarrollo Urbano Y Transporte</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id monto_contrato area_responsable\n",
"0 34 3183200000 Ministerio De Desarrollo Urbano Y Transporte\n",
"1 42 2227408083 Ministerio De Desarrollo Urbano Y Transporte\n",
"2 43 2136614835 Ministerio De Desarrollo Urbano Y Transporte\n",
"3 33 1640500000 Ministerio De Desarrollo Urbano Y Transporte\n",
"4 67 1585394079 Ministerio De Desarrollo Urbano Y Transporte"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url = 'https://raw.githubusercontent.com/aaizemberg/vis/gh-pages/obras/datos.tsv'\n",
"obras = pd.read_csv( url , sep='\\t')\n",
"obras.head(5)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<!--\n",
" ~ Copyright (c) 2015 IBM Corporation and others.\n",
" ~\n",
" ~ Licensed under the Apache License, Version 2.0 (the \"License\");\n",
" ~ You may not use this file except in compliance with the License.\n",
" ~ You may obtain a copy of the License at\n",
" ~\n",
" ~ http://www.apache.org/licenses/LICENSE-2.0\n",
" ~\n",
" ~ Unless required by applicable law or agreed to in writing, software\n",
" ~ distributed under the License is distributed on an \"AS IS\" BASIS,\n",
" ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
" ~ See the License for the specific language governing permissions and\n",
" ~ limitations under the License.\n",
" -->\n",
"\n",
"\n",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.2.3.css\">\n",
"<link rel=\"stylesheet\" type=\"text/css\" href=\"/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/sumoselect.css\">\n",
"\n",
"<style>\n",
" \n",
"</style>\n",
"\n",
"<div id=\"controlsid238bcab8-1beb-11e8-b013-360c827e6e8d\" class=\"brunel\"/>\n",
"<svg id=\"visid238bc8a6-1beb-11e8-b013-360c827e6e8d\" width=\"1100\" height=\"400\"></svg>"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/javascript": [
"/*\n",
" * Copyright (c) 2015 IBM Corporation and others.\n",
" *\n",
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n",
" * You may not use this file except in compliance with the License.\n",
" * You may obtain a copy of the License at\n",
" *\n",
" * http://www.apache.org/licenses/LICENSE-2.0\n",
" *\n",
" * Unless required by applicable law or agreed to in writing, software\n",
" * distributed under the License is distributed on an \"AS IS\" BASIS,\n",
" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
" * See the License for the specific language governing permissions and\n",
" * limitations under the License.\n",
" */\n",
"\n",
"require.config({\n",
" waitSeconds: 60,\n",
" paths: {\n",
" 'd3': '//cdnjs.cloudflare.com/ajax/libs/d3/4.2.1/d3.min',\n",
" 'topojson': '//cdnjs.cloudflare.com/ajax/libs/topojson/1.6.20/topojson.min',\n",
" 'brunel' : '/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.2.3.min',\n",
" 'brunelControls' : '/data/jupyter2/static-file-content-delivery-network/nbextensions/brunel_ext/brunel.controls.2.3.min'\n",
" },\n",
" shim: {\n",
" 'brunel' : {\n",
" exports: 'BrunelD3',\n",
" deps: ['d3', 'topojson'],\n",
" init: function() {\n",
" return {\n",
" BrunelD3 : BrunelD3,\n",
" BrunelData : BrunelData\n",
" }\n",
" }\n",
" },\n",
" 'brunelControls' : {\n",
" exports: 'BrunelEventHandlers',\n",
" init: function() {\n",
" return {\n",
" BrunelEventHandlers: BrunelEventHandlers,\n",
" BrunelJQueryControlFactory: BrunelJQueryControlFactory\n",
" }\n",
" }\n",
" }\n",
"\n",
" }\n",
"\n",
"});\n",
"\n",
"require([\"d3\"], function(d3) {\n",
" require([\"brunel\", \"brunelControls\"], function(brunel, brunelControls) {\n",
" function BrunelVis(visId) {\n",
" \"use strict\"; // strict mode\n",
" var datasets = [], // array of datasets for the original data\n",
" pre = function(d, i) { return d }, // default pre-process does nothing\n",
" post = function(d, i) { return d }, // default post-process does nothing\n",
" transitionTime = 200, // transition time for animations\n",
" charts = [], // the charts in the system\n",
" vis = d3.select('#' + visId).attr('class', 'brunel'); // the SVG container\n",
"\n",
" BrunelD3.addDefinitions(vis); // ensure standard symbols present\n",
"\n",
" // Define chart #1 in the visualization //////////////////////////////////////////////////////////\n",
"\n",
" charts[0] = function(parentNode, filterRows) {\n",
" var geom = BrunelD3.geometry(parentNode || vis.node(), 0, 0, 1, 1, 0, 0, 0, 330),\n",
" elements = []; // array of elements in this chart\n",
"\n",
" // Define groups for the chart parts ///////////////////////////////////////////////////////////\n",
"\n",
" var chart = vis.append('g').attr('class', 'chart1')\n",
" .attr('transform','translate(' + geom.chart_left + ',' + geom.chart_top + ')');\n",
" var overlay = chart.append('g').attr('class', 'element').attr('class', 'overlay');\n",
" var zoom = d3.zoom().scaleExtent([1/3,3]);\n",
" var zoomNode = overlay.append('rect').attr('class', 'overlay')\n",
" .attr('x', geom.inner_left).attr('y', geom.inner_top)\n",
" .attr('width', geom.inner_rawWidth).attr('height', geom.inner_rawHeight)\n",
" .style('cursor', 'default')\n",
" .node();\n",
" zoomNode.__zoom = d3.zoomIdentity;\n",
" chart.append('rect').attr('class', 'background').attr('width', geom.chart_right-geom.chart_left).attr('height', geom.chart_bottom-geom.chart_top);\n",
" var interior = chart.append('g').attr('class', 'interior zoomNone')\n",
" .attr('transform','translate(' + geom.inner_left + ',' + geom.inner_top + ')')\n",
" .attr('clip-path', 'url(#clip_visid238bc8a6-1beb-11e8-b013-360c827e6e8d_chart1_inner)');\n",
" interior.append('rect').attr('class', 'inner').attr('width', geom.inner_width).attr('height', geom.inner_height);\n",
" var gridGroup = interior.append('g').attr('class', 'grid');\n",
" var legends = chart.append('g').attr('class', 'legend')\n",
" .attr('transform','translate(' + (geom.chart_right-geom.chart_left - 3) + ',' + 0 + ')');\n",
" vis.append('clipPath').attr('id', 'clip_visid238bc8a6-1beb-11e8-b013-360c827e6e8d_chart1_inner').append('rect')\n",
" .attr('x', 0).attr('y', 0)\n",
" .attr('width', geom.inner_rawWidth+1).attr('height', geom.inner_rawHeight+1);\n",
" var tree, expandState = [], collapseState = {}; // collapse state maps node IDs to true/false\n",
" var scale_x = d3.scaleLinear(), scale_y = d3.scaleLinear();\n",
" var base_scales = [scale_x, scale_y]; // untransformed original scales\n",
" zoom.on('zoom', function(t, time) {\n",
" t = t || d3.event.transform;\n",
" zoomNode.__zoom = t;\n",
" interior.attr('class', 'interior ' + BrunelD3.zoomLabel(t.k));;\n",
" build(time || -1);\n",
" });\n",
"\n",
" // Define element #1 ///////////////////////////////////////////////////////////////////////////\n",
"\n",
" elements[0] = function() {\n",
" var original, processed, // data sets passed in and then transformed\n",
" element, data, // brunel element information and brunel data\n",
" selection, merged; // d3 selection and merged selection\n",
" var elementGroup = interior.append('g').attr('class', 'element1'),\n",
" main = elementGroup.append('g').attr('class', 'main'),\n",
" labels = BrunelD3.undoTransform(elementGroup.append('g').attr('class', 'labels').attr('aria-hidden', 'true'), elementGroup),\n",
" diagramLabels = BrunelD3.undoTransform(elementGroup.append('g').attr('class', 'diagram labels').attr('aria-hidden', 'true'), elementGroup);\n",
"\n",
" function makeData() {\n",
" original = datasets[0];\n",
" if (filterRows) original = original.retainRows(filterRows);\n",
" processed = pre(original, 0);\n",
" processed = post(processed, 0);\n",
" var f0 = processed.field('area_responsable'),\n",
" f1 = processed.field('monto_contrato'),\n",
" f2 = processed.field('#row'),\n",
" f3 = processed.field('#selection');\n",
" var keyFunc = function(d) { return f2.value(d) };\n",
" data = {\n",
" area_responsable:function(d) { return f0.value(d.row) },\n",
" monto_contrato:function(d) { return f1.value(d.row) },\n",
" $row: function(d) { return f2.value(d.row) },\n",
" $selection: function(d) { return f3.value(d.row) },\n",
" area_responsable_f:function(d) { return f0.valueFormatted(d.row) },\n",
" monto_contrato_f:function(d) { return f1.valueFormatted(d.row) },\n",
" $row_f: function(d) { return f2.valueFormatted(d.row) },\n",
" $selection_f: function(d) { return f3.valueFormatted(d.row) },\n",
" _split: function(d) { return f0.value(d.row)+ '|' + f1.value(d.row) },\n",
" _key: keyFunc,\n",
" _rows: BrunelD3.makeRowsWithKeys(keyFunc, processed.rowCount())\n",
" };\n",
" }\n",
" // Aesthetic Functions\n",
" var scale_color = d3.scaleOrdinal()\n",
" .domain(['Corporación Buenos Aires Sur', 'Instituto De La Vivienda (Ivc)', 'Ministerio De Ambiente Y Espacio Público', 'Ministerio De Cultura', 'Ministerio De Desarrollo Humano Y Hábitat', 'Ministerio De Desarrollo Urbano Y Transporte', 'Ministerio De Educación', 'Ministerio De Modernización, Innovación Y Tecnología', 'Ministerio De Salud', 'Subsecretaría De Gestión Comunal'])\n",
" .range([ '#347DAD', '#D43F58', '#F7D84A', '#31A461', '#A66A9C', '#FF954D', \n",
" '#A7978E', '#FFCA4D', '#F99EAF', '#B1C43B', '#7E64A2', '#FFB04D', '#CA5C7C', \n",
" '#DDBC8C', '#FFA28D', '#A5473D', '#8B6141', '#F57357', '#5C6B46']);\n",
" var color = function(d) { return scale_color(data.area_responsable(d.data)) };\n",
" var scale_size = d3.scaleLinear().domain([1, 3.183e9])\n",
" .range([ 0.001, 1]);\n",
" var size = function(d) { return scale_size(data.monto_contrato(d.data)) };\n",
" legends._legend = legends._legend || { title: ['Area Responsable'], \n",
" ticks: scale_color.domain()};\n",
" legends._legend.color = scale_color;\n",
"\n",
" // Build element from data ///////////////////////////////////////////////////////////////////\n",
"\n",
" function build(transitionMillis) {\n",
" element = elements[0];\n",
" // Define treemap (hierarchy) data structures\n",
" var first = (!tree), graph = BrunelData.diagram_Hierarchical.makeByNestingFields(processed, 'monto_contrato', 'area_responsable');\n",
" var targetNode = graph.root;\n",
" tree = d3.hierarchy(targetNode).sum(function(d) { return d.value });\n",
" BrunelD3.prune(tree, collapseState, true);\n",
" function nodeKey(d) { return d.data.key == null ? data._key(d.data.row) : d.data.key };\n",
" var treemap = d3.treemap().tile(d3.treemapResquarify)\n",
" .size([geom.inner_width, geom.inner_height])\n",
" .padding(function(d) { return d.depth < 3 ? 2*d.depth : 0} )\n",
" .paddingTop(function(d) { return d.depth ==1 ? 15 : (d.depth == 2) ? 12 : 0});\n",
" main.attr('class', 'diagram treemap hierarchy');\n",
"\n",
" // Define selection entry operations\n",
" function initialState(selection) {\n",
" selection\n",
" .attr('class', 'element polygon filled')\n",
" .filter(function(d) { return d.parent })\n",
" .attr('x', function(d) { return scale_x((d.parent.x0+d.parent.x1)/2) })\n",
" .attr('y', function(d) { return scale_y((d.parent.y0+d.parent.y1)/2) })\n",
" .attr('width', 0).attr('height', 0)\n",
" }\n",
"\n",
" // Define selection update operations on merged data\n",
" function updateState(selection) {\n",
" selection\n",
" .attr('class', function(d) { return (d.collapsed ? 'collapsed ' : '') + (d.data.children ? 'element L' + d.depth : 'leaf element bar') })\n",
" .attr('x', function(d) { return scale_x(d.x0) })\n",
" .attr('y', function(d) { return scale_y(d.y0) })\n",
" .attr('width', function(d) { return scale_x(d.x1) - scale_x(d.x0) })\n",
" .attr('height', function(d) { return scale_y(d.y1) - scale_y(d.y0) })\n",
" .filter(BrunelD3.hasData) // following only performed for data items\n",
" .style('fill', color);\n",
" }\n",
"\n",
" // Define labeling for the selection\n",
" function label(selection, transitionMillis) {\n",
"\n",
" var tooltipLabeling = {\n",
" index: -1, method: 'box', location: ['center', 'top'], inside: true, align: 'middle', pad: 0, dy: 0.7,\n",
" fit: true, granularity: 0,\n",
" content: function(d) {\n",
" return d.row == null ? null : '<span class=\"title\">Area Responsable: </span>'\n",
"\t\t\t+ '<span class=\"field\">' + data.area_responsable_f(d) + '</span>'\n",
"\t\t\t+ '<br/>'\n",
"\t\t\t+ '<span class=\"title\">Monto Contrato: </span>'\n",
"\t\t\t+ '<span class=\"field\">' + data.monto_contrato_f(d) + '</span>'\n",
" }\n",
" };\n",
" BrunelD3.addTooltip(selection, tooltipLabeling, geom);\n",
" diagramLabels.attr('class', 'axis diagram treemap hierarchy');\n",
" var treeLabeling = [{ index:0, method:'inner-left', fit:true, dy:0.83, align:'start', \n",
" content: function(d) { return d.data.innerNodeName },\n",
" cssClass: function(d) { return 'axis label L' + d.depth + ' H' + d.height }, \n",
" where : function(box) { return {'x': box.x + 2, 'y': box.y, 'box': box} }\n",
" }];\n",
" BrunelD3.label(selection.filter(function(d) {return d.data.key}), diagramLabels, transitionMillis, geom, treeLabeling);\n",
" }\n",
" // Create selections, set the initial state and transition updates\n",
" selection = main.selectAll('.element').data(treemap(tree).descendants(), nodeKey);\n",
" var added = selection.enter().append('rect');\n",
" merged = selection.merge(added);\n",
" initialState(added);\n",
" selection.filter(BrunelD3.hasData)\n",
" .classed('selected', BrunelD3.isSelected(data))\n",
" .filter(BrunelD3.isSelected(data)).raise();\n",
" updateState(BrunelD3.transition(merged, transitionMillis));\n",
" label(merged, transitionMillis);\n",
"\n",
" BrunelD3.transition(selection.exit(), transitionMillis/3)\n",
" .style('opacity', 0.5).each( function() {\n",
" this.remove(); BrunelD3.removeLabels(this); \n",
" });\n",
" merged // attach handlers to the element\n",
" .on('dblclick.collapse', function(d) {if (d.data.children) {collapseState[d.data.key] = !collapseState[d.data.key]; charts[0].build(500)} });\n",
" }\n",
"\n",
" return {\n",
" data: function() { return processed },\n",
" original: function() { return original },\n",
" internal: function() { return data },\n",
" selection: function() { return merged },\n",
" makeData: makeData,\n",
" build: build,\n",
" chart: function() { return charts[0] },\n",
" group: function() { return elementGroup },\n",
" fields: {\n",
" x: ['area_responsable'],\n",
" key: ['#row'],\n",
" color: ['area_responsable'],\n",
" size: ['monto_contrato']\n",
" }\n",
" };\n",
" }();\n",
"\n",
" function build(time, noData) {\n",
" var first = elements[0].data() == null;\n",
" if (first) time = 0; // no transition for first call\n",
" if ((first || time > -1) && !noData) {\n",
" elements[0].makeData();\n",
" BrunelD3.addLegend(legends, legends._legend);\n",
" }\n",
" elements[0].build(time);\n",
" }\n",
"\n",
" // Expose the following components of the chart\n",
" return {\n",
" elements : elements,\n",
" interior : interior,\n",
" zoom: function(params, time) {\n",
" if (params) zoom.on('zoom').call(zoomNode, params, time);\n",
" return d3.zoomTransform(zoomNode);\n",
" },\n",
" build : build\n",
" };\n",
" }();\n",
"\n",
" function setData(rowData, i) { datasets[i||0] = BrunelD3.makeData(rowData) }\n",
" function updateAll(time) { charts.forEach(function(x) {x.build(time || 0)}) }\n",
" function buildAll() {\n",
" for (var i=0;i<arguments.length;i++) setData(arguments[i], i);\n",
" updateAll(transitionTime);\n",
" }\n",
"\n",
" return {\n",
" dataPreProcess: function(f) { if (f) pre = f; return pre },\n",
" dataPostProcess: function(f) { if (f) post = f; return post },\n",
" data: function(d,i) { if (d) setData(d,i); return datasets[i||0] },\n",
" visId: visId,\n",
" build: buildAll,\n",
" rebuild: updateAll,\n",
" charts: charts\n",
" }\n",
"}\n",
"\n",
"// Data Tables /////////////////////////////////////////////////////////////////////////////////////\n",
"\n",
"var table1 = {\n",
" summarized: false,\n",
" names: ['area_responsable', 'monto_contrato'], \n",
" options: ['list', 'numeric'], \n",
" rows: [['Ministerio De Desarrollo Urbano Y Transporte', 3.183e9],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 2.227e9],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 2.137e9],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.641e9],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.585e9],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.547e9],\n",
" ['Instituto De La Vivienda (Ivc)', 1.223e9], ['Instituto De La Vivienda (Ivc)', 1.025e9],\n",
" ['Instituto De La Vivienda (Ivc)', 7.725e8], ['Instituto De La Vivienda (Ivc)', 6.903e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 5.081e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 3.137e8], ['Ministerio De Salud', 2.967e8],\n",
" ['Instituto De La Vivienda (Ivc)', 2.947e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 2.834e8],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2.765e8],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2.51e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 2.295e8],\n",
" ['Instituto De La Vivienda (Ivc)', 2.289e8], ['Instituto De La Vivienda (Ivc)', 2.177e8],\n",
" ['Instituto De La Vivienda (Ivc)', 2.175e8], ['Instituto De La Vivienda (Ivc)', 2.106e8],\n",
" ['Instituto De La Vivienda (Ivc)', 2.015e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.95e8],\n",
" ['Instituto De La Vivienda (Ivc)', 1.856e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.792e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.746e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.744e8], ['Ministerio De Educación', 1.696e8],\n",
" ['Ministerio De Educación', 1.688e8], ['Ministerio De Desarrollo Urbano Y Transporte', 1.686e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.665e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.633e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.61e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.608e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.549e8],\n",
" ['Instituto De La Vivienda (Ivc)', 1.532e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.488e8],\n",
" ['Instituto De La Vivienda (Ivc)', 1.432e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.399e8], ['Ministerio De Salud', 1.38e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.378e8], ['Ministerio De Salud', 1.355e8],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 1.342e8],\n",
" ['Instituto De La Vivienda (Ivc)', 1.321e8], ['Ministerio De Educación', 1.256e8],\n",
" ['Instituto De La Vivienda (Ivc)', 1.237e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.237e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.2e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.195e8],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1.169e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.143e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.134e8],\n",
" ['Ministerio De Ambiente Y Espacio Público', 1.12e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.12e8], ['Ministerio De Salud', 1.052e8],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1.036e8], ['Ministerio De Salud', 1.03e8],\n",
" ['Ministerio De Salud', 1.029e8], ['Ministerio De Desarrollo Urbano Y Transporte', 98174265],\n",
" ['Ministerio De Educación', 91288256], ['Ministerio De Educación', 89538867],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 86226253],\n",
" ['Ministerio De Ambiente Y Espacio Público', 85010704], ['Ministerio De Salud', 84798501],\n",
" ['Instituto De La Vivienda (Ivc)', 84025000], ['Instituto De La Vivienda (Ivc)', 83509547],\n",
" ['Ministerio De Salud', 82179167], ['Ministerio De Desarrollo Urbano Y Transporte', 75368613],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 74801899],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 71823848],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 69200043],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 67065700],\n",
" ['Ministerio De Ambiente Y Espacio Público', 65800000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 62590455],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 61408955],\n",
" ['Instituto De La Vivienda (Ivc)', 60912546], ['Instituto De La Vivienda (Ivc)', 60821903],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 60677935], ['Ministerio De Salud', 60000000],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 59922292],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 59761171],\n",
" ['Instituto De La Vivienda (Ivc)', 58590234],\n",
" ['Ministerio De Ambiente Y Espacio Público', 56809263],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 56737649],\n",
" ['Ministerio De Ambiente Y Espacio Público', 55600000], ['Ministerio De Salud', 55287592],\n",
" ['Ministerio De Ambiente Y Espacio Público', 55128386],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 55059359],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 54936733],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 54936733],\n",
" ['Subsecretaría De Gestión Comunal', 53999667],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 52831053],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 52685356],\n",
" ['Ministerio De Ambiente Y Espacio Público', 52300000], ['Ministerio De Salud', 52100000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 50643415],\n",
" ['Instituto De La Vivienda (Ivc)', 49565419],\n",
" ['Ministerio De Ambiente Y Espacio Público', 48969994],\n",
" ['Instituto De La Vivienda (Ivc)', 48880000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 48590604],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 48500000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 46473558],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 46130426],\n",
" ['Ministerio De Ambiente Y Espacio Público', 45684704],\n",
" ['Ministerio De Ambiente Y Espacio Público', 43406958],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 43174941],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 42340809], ['Ministerio De Salud', 42000000],\n",
" ['Instituto De La Vivienda (Ivc)', 41731397], ['Instituto De La Vivienda (Ivc)', 41510103],\n",
" ['Ministerio De Ambiente Y Espacio Público', 40900000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 40774370], ['Ministerio De Salud', 40536952],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 40185440],\n",
" ['Ministerio De Ambiente Y Espacio Público', 40000000], ['Ministerio De Educación', 39950000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 38889328],\n",
" ['Ministerio De Ambiente Y Espacio Público', 38330000],\n",
" ['Instituto De La Vivienda (Ivc)', 38000000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 37500000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 36942632],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 36725502],\n",
" ['Ministerio De Ambiente Y Espacio Público', 36640851],\n",
" ['Ministerio De Ambiente Y Espacio Público', 35956532],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 35787390],\n",
" ['Ministerio De Ambiente Y Espacio Público', 34011000], ['Ministerio De Salud', 33890055],\n",
" ['Ministerio De Salud', 33604400], ['Ministerio De Salud', 33600000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 33508984],\n",
" ['Ministerio De Ambiente Y Espacio Público', 33095135],\n",
" ['Ministerio De Ambiente Y Espacio Público', 32955400],\n",
" ['Ministerio De Ambiente Y Espacio Público', 32712692],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 32660647],\n",
" ['Ministerio De Ambiente Y Espacio Público', 32300000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 31688845], ['Ministerio De Educación', 30144882],\n",
" ['Ministerio De Salud', 30000000], ['Ministerio De Ambiente Y Espacio Público', 29998890],\n",
" ['Ministerio De Ambiente Y Espacio Público', 29577494],\n",
" ['Ministerio De Ambiente Y Espacio Público', 28753492],\n",
" ['Ministerio De Ambiente Y Espacio Público', 28050000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 28004393], ['Ministerio De Educación', 27795511],\n",
" ['Ministerio De Ambiente Y Espacio Público', 27760000], ['Ministerio De Educación', 27196862],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 26938294], ['Ministerio De Educación', 26452092],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 26399069],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 26399069],\n",
" ['Ministerio De Ambiente Y Espacio Público', 25455372], ['Ministerio De Educación', 24848023],\n",
" ['Ministerio De Ambiente Y Espacio Público', 24707027],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 24536126],\n",
" ['Corporación Buenos Aires Sur', 24498933], ['Ministerio De Ambiente Y Espacio Público', 24490004],\n",
" ['Ministerio De Educación', 23838357], ['Ministerio De Ambiente Y Espacio Público', 23800000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 23600000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 23348537], ['Ministerio De Salud', 23152389],\n",
" ['Ministerio De Salud', 22616453], ['Ministerio De Ambiente Y Espacio Público', 22600000],\n",
" ['Ministerio De Educación', 22479783], ['Ministerio De Ambiente Y Espacio Público', 22259416],\n",
" ['Corporación Buenos Aires Sur', 22035450], ['Subsecretaría De Gestión Comunal', 21921802],\n",
" ['Ministerio De Ambiente Y Espacio Público', 21362968],\n",
" ['Ministerio De Ambiente Y Espacio Público', 21128720],\n",
" ['Subsecretaría De Gestión Comunal', 20640490],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 20356959],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 19981404], ['Ministerio De Salud', 19428368],\n",
" ['Ministerio De Ambiente Y Espacio Público', 19375918],\n",
" ['Ministerio De Ambiente Y Espacio Público', 19300000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 19300000], ['Ministerio De Salud', 19060730],\n",
" ['Ministerio De Ambiente Y Espacio Público', 18900000], ['Ministerio De Educación', 18787437],\n",
" ['Ministerio De Salud', 18202359], ['Ministerio De Ambiente Y Espacio Público', 18100000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17970000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17966000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17919644],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17900000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17580042], ['Ministerio De Educación', 17492905],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 17439199], ['Ministerio De Salud', 17406748],\n",
" ['Ministerio De Ambiente Y Espacio Público', 17389000],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 17202505],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 17176125], ['Ministerio De Salud', 17000000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 16487824], ['Ministerio De Educación', 16253300],\n",
" ['Ministerio De Salud', 16089020], ['Ministerio De Educación', 16034567],\n",
" ['Ministerio De Ambiente Y Espacio Público', 15300000], ['Ministerio De Salud', 15264748],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 15242432],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 15203243],\n",
" ['Ministerio De Ambiente Y Espacio Público', 15000000],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 14940479],\n",
" ['Ministerio De Ambiente Y Espacio Público', 14898796], ['Ministerio De Salud', 14893428],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 14534310], ['Ministerio De Educación', 14505000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 14460774],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 14446296],\n",
" ['Ministerio De Ambiente Y Espacio Público', 14118038],\n",
" ['Subsecretaría De Gestión Comunal', 13933231], ['Corporación Buenos Aires Sur', 13912013],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 13906212], ['Ministerio De Educación', 13637154],\n",
" ['Ministerio De Ambiente Y Espacio Público', 13416902],\n",
" ['Ministerio De Ambiente Y Espacio Público', 13333334],\n",
" ['Ministerio De Ambiente Y Espacio Público', 13231160], ['Ministerio De Salud', 12815554],\n",
" ['Ministerio De Educación', 12499378], ['Ministerio De Desarrollo Urbano Y Transporte', 12450513],\n",
" ['Subsecretaría De Gestión Comunal', 12326581], ['Ministerio De Educación', 12176766],\n",
" ['Ministerio De Ambiente Y Espacio Público', 11974000], ['Ministerio De Educación', 11937896],\n",
" ['Ministerio De Educación', 11919911], ['Ministerio De Desarrollo Urbano Y Transporte', 11917967],\n",
" ['Ministerio De Salud', 11637039], ['Ministerio De Educación', 11612519],\n",
" ['Corporación Buenos Aires Sur', 11468882], ['Ministerio De Salud', 11089624],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 10984180],\n",
" ['Corporación Buenos Aires Sur', 10834430],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 10786799],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 10781000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 10332604],\n",
" ['Ministerio De Ambiente Y Espacio Público', 10215407],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 10197000], ['Ministerio De Educación', 10054869],\n",
" ['Ministerio De Salud', 10004793], ['Ministerio De Ambiente Y Espacio Público', 10000000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9981000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 9950017],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9780037],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9754155],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9700000],\n",
" ['Subsecretaría De Gestión Comunal', 9681112],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9547014],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9541428], ['Ministerio De Salud', 9378358],\n",
" ['Ministerio De Ambiente Y Espacio Público', 9226000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 9133269], ['Ministerio De Educación', 8948590],\n",
" ['Ministerio De Ambiente Y Espacio Público', 8940014],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 8897525],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 8825149],\n",
" ['Subsecretaría De Gestión Comunal', 8791277],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 8755881],\n",
" ['Ministerio De Ambiente Y Espacio Público', 8700000], ['Ministerio De Salud', 8660000],\n",
" ['Ministerio De Salud', 8250000], ['Ministerio De Desarrollo Urbano Y Transporte', 8245624],\n",
" ['Ministerio De Ambiente Y Espacio Público', 8200000], ['Ministerio De Salud', 8110000],\n",
" ['Ministerio De Salud', 8108578], ['Ministerio De Ambiente Y Espacio Público', 8075034],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 8051000], ['Ministerio De Educación', 8007198],\n",
" ['Ministerio De Educación', 8000000], ['Ministerio De Salud', 7981530],\n",
" ['Ministerio De Salud', 7817140], ['Ministerio De Salud', 7782123],\n",
" ['Ministerio De Educación', 7750834], ['Ministerio De Ambiente Y Espacio Público', 7700002],\n",
" ['Ministerio De Educación', 7614048], ['Ministerio De Ambiente Y Espacio Público', 7603543],\n",
" ['Ministerio De Salud', 7489486], ['Ministerio De Desarrollo Humano Y Hábitat', 7360782],\n",
" ['Corporación Buenos Aires Sur', 7346340], ['Ministerio De Desarrollo Humano Y Hábitat', 7334313],\n",
" ['Ministerio De Educación', 7244094], ['Ministerio De Educación', 7203420],\n",
" ['Subsecretaría De Gestión Comunal', 7112537], ['Ministerio De Salud', 7048897],\n",
" ['Ministerio De Educación', 7030271], ['Ministerio De Desarrollo Urbano Y Transporte', 6990315],\n",
" ['Subsecretaría De Gestión Comunal', 6987575], ['Ministerio De Salud', 6842615],\n",
" ['Ministerio De Salud', 6711165], ['Subsecretaría De Gestión Comunal', 6654020],\n",
" ['Subsecretaría De Gestión Comunal', 6629196], ['Ministerio De Educación', 6603217],\n",
" ['Ministerio De Salud', 6548728], ['Ministerio De Educación', 6499921],\n",
" ['Ministerio De Educación', 6495745], ['Subsecretaría De Gestión Comunal', 6392935],\n",
" ['Ministerio De Educación', 6380743], ['Corporación Buenos Aires Sur', 6357735],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 6353999], ['Ministerio De Educación', 6339454],\n",
" ['Subsecretaría De Gestión Comunal', 6292554], ['Ministerio De Salud', 6263000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 6161000], ['Ministerio De Salud', 6150537],\n",
" ['Subsecretaría De Gestión Comunal', 6081664], ['Ministerio De Educación', 6017102],\n",
" ['Subsecretaría De Gestión Comunal', 6000002], ['Ministerio De Educación', 5977447],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 5971260],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 5971259],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 5928273],\n",
" ['Ministerio De Ambiente Y Espacio Público', 5846323], ['Ministerio De Salud', 5813679],\n",
" ['Subsecretaría De Gestión Comunal', 5725064],\n",
" ['Ministerio De Ambiente Y Espacio Público', 5725000], ['Ministerio De Educación', 5600000],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 5521581],\n",
" ['Subsecretaría De Gestión Comunal', 5480674], ['Subsecretaría De Gestión Comunal', 5420623],\n",
" ['Ministerio De Salud', 5394334], ['Ministerio De Ambiente Y Espacio Público', 5361000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 5224224], ['Ministerio De Educación', 5199700],\n",
" ['Ministerio De Salud', 5175000], ['Ministerio De Ambiente Y Espacio Público', 5127000],\n",
" ['Ministerio De Educación', 5006510], ['Ministerio De Salud', 5000000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 5000000], ['Corporación Buenos Aires Sur', 4998364],\n",
" ['Ministerio De Educación', 4997258], ['Ministerio De Desarrollo Urbano Y Transporte', 4926076],\n",
" ['Ministerio De Salud', 4900460], ['Subsecretaría De Gestión Comunal', 4870300],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 4756449],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 4669930],\n",
" ['Subsecretaría De Gestión Comunal', 4646695], ['Corporación Buenos Aires Sur', 4614679],\n",
" ['Ministerio De Ambiente Y Espacio Público', 4596094], ['Ministerio De Educación', 4576809],\n",
" ['Corporación Buenos Aires Sur', 4557686],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 4553909],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 4500081],\n",
" ['Ministerio De Ambiente Y Espacio Público', 4500000], ['Ministerio De Salud', 4466925],\n",
" ['Ministerio De Educación', 4374885], ['Ministerio De Salud', 4269045],\n",
" ['Ministerio De Educación', 4246602], ['Ministerio De Ambiente Y Espacio Público', 4212906],\n",
" ['Ministerio De Salud', 4131009], ['Subsecretaría De Gestión Comunal', 4130000],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 4111783],\n",
" ['Corporación Buenos Aires Sur', 4093977],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 4062200],\n",
" ['Subsecretaría De Gestión Comunal', 4025249], ['Ministerio De Salud', 4000000],\n",
" ['Ministerio De Salud', 4000000], ['Ministerio De Ambiente Y Espacio Público', 4000000],\n",
" ['Ministerio De Ambiente Y Espacio Público', 4000000], ['Corporación Buenos Aires Sur', 3993192],\n",
" ['Ministerio De Salud', 3983941], ['Subsecretaría De Gestión Comunal', 3903839],\n",
" ['Ministerio De Salud', 3881756], ['Ministerio De Ambiente Y Espacio Público', 3840887],\n",
" ['Corporación Buenos Aires Sur', 3808672],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 3788185], ['Ministerio De Salud', 3723201],\n",
" ['Corporación Buenos Aires Sur', 3690673], ['Corporación Buenos Aires Sur', 3672574],\n",
" ['Corporación Buenos Aires Sur', 3659055],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 3650000],\n",
" ['Subsecretaría De Gestión Comunal', 3586854], ['Corporación Buenos Aires Sur', 3578479],\n",
" ['Subsecretaría De Gestión Comunal', 3576650],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 3556000],\n",
" ['Ministerio De Educación', 3499886], ['Ministerio De Ambiente Y Espacio Público', 3494572],\n",
" ['Ministerio De Ambiente Y Espacio Público', 3480616],\n",
" ['Ministerio De Ambiente Y Espacio Público', 3453493], ['Ministerio De Educación', 3318737],\n",
" ['Ministerio De Salud', 3317643], ['Ministerio De Educación', 3292976],\n",
" ['Ministerio De Educación', 3281376], ['Corporación Buenos Aires Sur', 3268701],\n",
" ['Ministerio De Ambiente Y Espacio Público', 3200000], ['Ministerio De Educación', 3183752],\n",
" ['Subsecretaría De Gestión Comunal', 3136293],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 3127027],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 3123200],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 3113000],\n",
" ['Subsecretaría De Gestión Comunal', 3107789], ['Corporación Buenos Aires Sur', 3086742],\n",
" ['Ministerio De Salud', 3046562], ['Ministerio De Salud', 3037690],\n",
" ['Ministerio De Educación', 2999056], ['Ministerio De Educación', 2992583],\n",
" ['Ministerio De Educación', 2991405], ['Ministerio De Educación', 2991264],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2984325], ['Ministerio De Educación', 2979477],\n",
" ['Ministerio De Educación', 2969250], ['Ministerio De Educación', 2951151],\n",
" ['Ministerio De Salud', 2933662], ['Ministerio De Educación', 2929698],\n",
" ['Corporación Buenos Aires Sur', 2911675], ['Subsecretaría De Gestión Comunal', 2904871],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2891513],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2890571],\n",
" ['Ministerio De Salud', 2888560], ['Ministerio De Educación', 2875610],\n",
" ['Ministerio De Educación', 2873156], ['Ministerio De Educación', 2870371],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2853390],\n",
" ['Subsecretaría De Gestión Comunal', 2847482], ['Corporación Buenos Aires Sur', 2829803],\n",
" ['Ministerio De Salud', 2828072], ['Subsecretaría De Gestión Comunal', 2800659],\n",
" ['Ministerio De Salud', 2784361], ['Ministerio De Educación', 2781936],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2780000], ['Ministerio De Salud', 2766296],\n",
" ['Corporación Buenos Aires Sur', 2736856], ['Ministerio De Educación', 2736733],\n",
" ['Corporación Buenos Aires Sur', 2715512], ['Ministerio De Educación', 2708684],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2697238],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2685000],\n",
" ['Ministerio De Educación', 2681984], ['Ministerio De Desarrollo Humano Y Hábitat', 2675563],\n",
" ['Ministerio De Educación', 2626095], ['Corporación Buenos Aires Sur', 2615466],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2592231], ['Ministerio De Educación', 2588218],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2586851], ['Ministerio De Educación', 2583611],\n",
" ['Ministerio De Salud', 2579655], ['Ministerio De Educación', 2577752],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2522918], ['Ministerio De Salud', 2500000],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2499979],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2485100],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 2462636], ['Ministerio De Educación', 2457851],\n",
" ['Subsecretaría De Gestión Comunal', 2450010],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2434966],\n",
" ['Ministerio De Salud', 2391883], ['Ministerio De Desarrollo Humano Y Hábitat', 2380554],\n",
" ['Ministerio De Educación', 2370996], ['Ministerio De Salud', 2368032],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2342595], ['Ministerio De Educación', 2324381],\n",
" ['Ministerio De Ambiente Y Espacio Público', 2319000], ['Ministerio De Educación', 2289491],\n",
" ['Ministerio De Salud', 2279344], ['Corporación Buenos Aires Sur', 2275049],\n",
" ['Corporación Buenos Aires Sur', 2272672], ['Ministerio De Desarrollo Humano Y Hábitat', 2251194],\n",
" ['Ministerio De Educación', 2226402], ['Ministerio De Educación', 2198571],\n",
" ['Corporación Buenos Aires Sur', 2186776], ['Ministerio De Salud', 2169707],\n",
" ['Subsecretaría De Gestión Comunal', 2154964], ['Corporación Buenos Aires Sur', 2131772],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2120440],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 2106085],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 2084504], ['Ministerio De Educación', 2044025],\n",
" ['Ministerio De Educación', 2003221], ['Ministerio De Salud', 2000000],\n",
" ['Ministerio De Educación', 1998000], ['Ministerio De Educación', 1965719],\n",
" ['Ministerio De Educación', 1949681], ['Ministerio De Salud', 1900011],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1888807],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1888390],\n",
" ['Corporación Buenos Aires Sur', 1875949], ['Subsecretaría De Gestión Comunal', 1851143],\n",
" ['Corporación Buenos Aires Sur', 1832840], ['Ministerio De Educación', 1814036],\n",
" ['Corporación Buenos Aires Sur', 1805153], ['Ministerio De Salud', 1800000],\n",
" ['Ministerio De Educación', 1787987], ['Corporación Buenos Aires Sur', 1782915],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 1776493],\n",
" ['Ministerio De Ambiente Y Espacio Público', 1761000], ['Corporación Buenos Aires Sur', 1760971],\n",
" ['Corporación Buenos Aires Sur', 1760971], ['Ministerio De Educación', 1757811],\n",
" ['Ministerio De Educación', 1757009], ['Ministerio De Educación', 1753837],\n",
" ['Ministerio De Salud', 1748496], ['Corporación Buenos Aires Sur', 1747859],\n",
" ['Subsecretaría De Gestión Comunal', 1741124], ['Ministerio De Educación', 1724982],\n",
" ['Subsecretaría De Gestión Comunal', 1716682], ['Ministerio De Educación', 1716020],\n",
" ['Corporación Buenos Aires Sur', 1655046], ['Corporación Buenos Aires Sur', 1649652],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1649170],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1645600],\n",
" ['Ministerio De Educación', 1644438], ['Ministerio De Educación', 1641553],\n",
" ['Ministerio De Ambiente Y Espacio Público', 1640000], ['Ministerio De Educación', 1629592],\n",
" ['Subsecretaría De Gestión Comunal', 1611936], ['Ministerio De Salud', 1605362],\n",
" ['Corporación Buenos Aires Sur', 1600495], ['Ministerio De Educación', 1582695],\n",
" ['Ministerio De Educación', 1573000], ['Ministerio De Ambiente Y Espacio Público', 1534678],\n",
" ['Corporación Buenos Aires Sur', 1528495], ['Ministerio De Educación', 1498959],\n",
" ['Ministerio De Educación', 1495632], ['Ministerio De Educación', 1493450],\n",
" ['Corporación Buenos Aires Sur', 1485973], ['Ministerio De Educación', 1484859],\n",
" ['Subsecretaría De Gestión Comunal', 1477190], ['Corporación Buenos Aires Sur', 1467448],\n",
" ['Corporación Buenos Aires Sur', 1460667], ['Subsecretaría De Gestión Comunal', 1458602],\n",
" ['Subsecretaría De Gestión Comunal', 1452016], ['Corporación Buenos Aires Sur', 1436125],\n",
" ['Corporación Buenos Aires Sur', 1411966], ['Subsecretaría De Gestión Comunal', 1408272],\n",
" ['Ministerio De Educación', 1390972], ['Ministerio De Educación', 1369534],\n",
" ['Corporación Buenos Aires Sur', 1366669], ['Corporación Buenos Aires Sur', 1349397],\n",
" ['Ministerio De Educación', 1338602], ['Corporación Buenos Aires Sur', 1299141],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 1295968], ['Ministerio De Salud', 1284062],\n",
" ['Corporación Buenos Aires Sur', 1283329], ['Corporación Buenos Aires Sur', 1283329],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1282982],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1276501],\n",
" ['Corporación Buenos Aires Sur', 1273708], ['Subsecretaría De Gestión Comunal', 1248000],\n",
" ['Ministerio De Educación', 1243828],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1243000],\n",
" ['Ministerio De Salud', 1231889], ['Ministerio De Educación', 1191991],\n",
" ['Ministerio De Educación', 1176216], ['Ministerio De Educación', 1132387],\n",
" ['Corporación Buenos Aires Sur', 1119649], ['Corporación Buenos Aires Sur', 1115236],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 1109724],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 1106885], ['Ministerio De Educación', 1106680],\n",
" ['Ministerio De Salud', 1103965], ['Ministerio De Ambiente Y Espacio Público', 1100000],\n",
" ['Corporación Buenos Aires Sur', 1093413], ['Ministerio De Educación', 1062622],\n",
" ['Ministerio De Educación', 1036524], ['Corporación Buenos Aires Sur', 1016896],\n",
" ['Ministerio De Educación', 1015751], ['Corporación Buenos Aires Sur', 1011801],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 1000000], ['Corporación Buenos Aires Sur', 994435],\n",
" ['Ministerio De Educación', 989750], ['Ministerio De Salud', 985752],\n",
" ['Ministerio De Cultura', 978750], ['Ministerio De Salud', 955126],\n",
" ['Corporación Buenos Aires Sur', 950170], ['Corporación Buenos Aires Sur', 937131],\n",
" ['Corporación Buenos Aires Sur', 931469], ['Corporación Buenos Aires Sur', 928987],\n",
" ['Ministerio De Salud', 924967], ['Ministerio De Modernización, Innovación Y Tecnología', 916817],\n",
" ['Corporación Buenos Aires Sur', 901584], ['Ministerio De Educación', 901100],\n",
" ['Corporación Buenos Aires Sur', 899466], ['Corporación Buenos Aires Sur', 883917],\n",
" ['Ministerio De Educación', 883167], ['Ministerio De Educación', 883167],\n",
" ['Corporación Buenos Aires Sur', 840030], ['Ministerio De Salud', 834229],\n",
" ['Ministerio De Educación', 829219], ['Ministerio De Educación', 823125],\n",
" ['Corporación Buenos Aires Sur', 820006], ['Corporación Buenos Aires Sur', 792212],\n",
" ['Ministerio De Educación', 776730], ['Corporación Buenos Aires Sur', 773279],\n",
" ['Corporación Buenos Aires Sur', 763546], ['Ministerio De Educación', 762905],\n",
" ['Ministerio De Desarrollo Urbano Y Transporte', 756353],\n",
" ['Subsecretaría De Gestión Comunal', 755686], ['Corporación Buenos Aires Sur', 755445],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 753065],\n",
" ['Corporación Buenos Aires Sur', 749302], ['Ministerio De Salud', 742690],\n",
" ['Ministerio De Cultura', 739347], ['Ministerio De Educación', 728807],\n",
" ['Ministerio De Educación', 712437], ['Ministerio De Educación', 710606],\n",
" ['Ministerio De Educación', 695486], ['Ministerio De Educación', 695486],\n",
" ['Ministerio De Educación', 688681], ['Ministerio De Educación', 688681],\n",
" ['Ministerio De Salud', 640667], ['Ministerio De Educación', 624752],\n",
" ['Corporación Buenos Aires Sur', 623000], ['Corporación Buenos Aires Sur', 622514],\n",
" ['Ministerio De Educación', 621780], ['Corporación Buenos Aires Sur', 617280],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 610907],\n",
" ['Corporación Buenos Aires Sur', 601511], ['Ministerio De Salud', 593236],\n",
" ['Ministerio De Educación', 589409],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 583820],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 576399],\n",
" ['Ministerio De Educación', 574615], ['Ministerio De Cultura', 547000],\n",
" ['Ministerio De Educación', 532955], ['Corporación Buenos Aires Sur', 527187],\n",
" ['Ministerio De Educación', 525150], ['Ministerio De Educación', 516130],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 510200],\n",
" ['Ministerio De Educación', 508696], ['Corporación Buenos Aires Sur', 495696],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 479329],\n",
" ['Corporación Buenos Aires Sur', 472003], ['Corporación Buenos Aires Sur', 470875],\n",
" ['Ministerio De Educación', 449321], ['Ministerio De Educación', 446922],\n",
" ['Ministerio De Educación', 444129], ['Corporación Buenos Aires Sur', 422723],\n",
" ['Ministerio De Salud', 397672], ['Ministerio De Cultura', 395997],\n",
" ['Corporación Buenos Aires Sur', 380268], ['Corporación Buenos Aires Sur', 375210],\n",
" ['Corporación Buenos Aires Sur', 375121], ['Corporación Buenos Aires Sur', 372173],\n",
" ['Ministerio De Educación', 360499], ['Ministerio De Educación', 357597],\n",
" ['Corporación Buenos Aires Sur', 356879], ['Corporación Buenos Aires Sur', 351364],\n",
" ['Ministerio De Salud', 350000], ['Corporación Buenos Aires Sur', 346471],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 345000],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 335000],\n",
" ['Corporación Buenos Aires Sur', 315201], ['Ministerio De Educación', 315118],\n",
" ['Corporación Buenos Aires Sur', 313912],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 305388],\n",
" ['Ministerio De Educación', 304241], ['Corporación Buenos Aires Sur', 292677],\n",
" ['Corporación Buenos Aires Sur', 285872], ['Corporación Buenos Aires Sur', 254512],\n",
" ['Corporación Buenos Aires Sur', 244427], ['Ministerio De Educación', 238398],\n",
" ['Ministerio De Desarrollo Humano Y Hábitat', 228350], ['Corporación Buenos Aires Sur', 227617],\n",
" ['Ministerio De Modernización, Innovación Y Tecnología', 210000],\n",
" ['Ministerio De Educación', 208937], ['Ministerio De Educación', 201654],\n",
" ['Ministerio De Educación', 201654], ['Ministerio De Educación', 178799],\n",
" ['Ministerio De Educación', 174274], ['Ministerio De Educación', 160446],\n",
" ['Ministerio De Educación', 149556], ['Ministerio De Educación', 145564],\n",
" ['Ministerio De Educación', 132465], ['Ministerio De Educación', 126511],\n",
" ['Corporación Buenos Aires Sur', 110918], ['Corporación Buenos Aires Sur', 104574],\n",
" ['Corporación Buenos Aires Sur', 103735], ['Ministerio De Educación', 95359],\n",
" ['Ministerio De Educación', 92787], ['Corporación Buenos Aires Sur', 79880],\n",
" ['Corporación Buenos Aires Sur', 79880], ['Corporación Buenos Aires Sur', 72934],\n",
" ['Corporación Buenos Aires Sur', 56103], ['Ministerio De Educación', 47514]]\n",
"};\n",
"\n",
"// Call Code to Build the system ///////////////////////////////////////////////////////////////////\n",
"\n",
"var v = new BrunelVis('visid238bc8a6-1beb-11e8-b013-360c827e6e8d');\n",
"v.build(table1);\n",
"\n",
" });\n",
"});"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"%brunel data('obras') x(area_responsable) treemap size(monto_contrato) color(area_responsable) tooltip(#all) :: width=1100"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.5",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.4"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment