Created
February 27, 2018 18:24
-
-
Save aaizemberg/a1211d5942abb430e4216da32a918250 to your computer and use it in GitHub Desktop.
Probando Brunel
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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