

{"id":1334,"date":"2012-06-20T23:43:13","date_gmt":"2012-06-21T04:43:13","guid":{"rendered":"http:\/\/rud.is\/b\/?p=1334"},"modified":"2018-03-10T07:53:18","modified_gmt":"2018-03-10T12:53:18","slug":"slopegraphs-in-python-failed-states-index-part-1","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/","title":{"rendered":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1)"},"content":{"rendered":"<p>The <a href=\"http:\/\/fundforpeace.org\/global\/?q=fsi\">Fund For Peace<\/a> (FFP) and <a href=\"http:\/\/foreignpolicy.com\/2012\/06\/18\/the-2012-failed-states-index-interactive-map-and-rankings\/\">Foreign Policy<\/a> jointly released the 2012 version of the &#8220;failed states index&#8221; (FSI). From the FFP site, the FSI:<\/p>\n<blockquote><p><i>\u2026focuses on the indicators of risk and is based on thousands of articles and reports that are processed by our CAST Software from electronically available sources.<\/i><\/p><\/blockquote>\n<p>I read it every year (mostly due to being an ardent reader of Foreign Policy magazine) and find the rankings, methodology &amp; insights quite intriguing. With my recent work on slopegraphs, I thought this would be a good data set to play with to determine what \u2013\u00a0if any \u2013 features were necessary to support rank order (and to provide some impetus to finally refactor the code to support multi-column slopegraphs\u2026more on that later).<\/p>\n<p><i>However<\/i>, I was not looking forward to transcribing the data from the Flash visualization on the Foreign Policy web site. There are <a href=\"http:\/\/fundforpeace.org\/global\/?q=fsi-grid2011\">HTML<\/a> <a href=\"http:\/\/fundforpeace.org\/global\/?q=fsi-grid2012\">grids<\/a> on the FFP site but I really just wanted the overall rankings (i.e. no sub-indices) and noticed this interesting scrollable mini-grid on one of the FFP FSI pages:<\/p>\n<p><center><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1335\" data-permalink=\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/fsi-2012-the-fund-for-peace\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&amp;ssl=1\" data-orig-size=\"239,260\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"FSI 2012 | The Fund for Peace\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?resize=239%2C260&#038;ssl=1\" alt=\"\" title=\"FSI 2012 | The Fund for Peace\" width=\"239\" height=\"260\" class=\"aligncenter size-full wp-image-1335\" \/><\/center><\/p>\n<p>Thankfully[?] it&#8217;s an IFRAME and I was able to pull 2010, 2011 &amp; 2012 data in a very usable format by manipulating this URL: <code>http:\/\/www.fundforpeace.org\/global\/tables\/fsiindex2010_sml.htm<\/code>.<\/p>\n<p>After some quick transformations, I had two CSV files for a 2010-2012 comparison and a 2011-2012 comparison.<\/p>\n<p><i>(Before continuing, I feel the need to point out that the data, methodology, etc is 100% Copyright &copy; 2012 The Fund for Peace as they overtly point out many times on their site.)<\/i><\/p>\n<p>When I threw the data into the slopegraph tool, it was immediately obvious that I was missing something important: the ability to specify sort order for the data. For <i>most<\/i> slopegraphs, the code works well since our brains expect the larger values on the top. For a rank-order slopegraph, that sort order (for the most part) should be ascending vs descending to best represent changes in rank position. It does feel odd that being &#8220;#1&#8221; in the FSI actually means you&#8217;re really a loser, but I didn&#8217;t make the rules for their index.<\/p>\n<p>So, PySlopegraph now handles two column rank order slopegraphs and, as you&#8217;ll see in part two, also handles multi-column slopegraphs (but that bit needs some work). The code will be up on github in a couple days as I&#8217;ve also got some half-finished support for <a href=\"http:\/\/processingjs.org\/\">Processing.js<\/a> and <a href=\"http:\/\/paperjs.org\/\">Paper.js<\/a> that I want to finish before another push. If anyone needs it sooner, just @ or DM me.<\/p>\n<p><b>Now, For The Data<\/b><\/p>\n<p>The &#8220;Top 25&#8221; (that sounds way too positive for what it really means) slopegraph is the easiest to read (as it&#8217;s the smallest). It is also where Foreign Policy &amp; FFP focus some dataviz effort as well (though they do have visualizations for all the data). Here&#8217;s the slopegraph showing the rank order chance from 2010 to 2012:<\/p>\n<p><center><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1372\" data-permalink=\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/failed-states-2010-2012-top-25\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?fit=502%2C956&amp;ssl=1\" data-orig-size=\"502,956\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"failed-states-2010-2012-top-25\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?fit=157%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?fit=502%2C956&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?resize=502%2C956&#038;ssl=1\" alt=\"\" title=\"failed-states-2010-2012-top-25\" width=\"502\" height=\"956\" class=\"aligncenter size-full wp-image-1372\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?w=502&amp;ssl=1 502w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012-top-25.png?resize=157%2C300&amp;ssl=1 157w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/center><\/p>\n<p>The full slopegraphs are <i>tall<\/i> slopegraphs (I&#8217;ve been prototyping some ways to make tall ones more useful, but that&#8217;s nowhere near ready for public consumption). You may just want to grab the two PDFs and look there vs in this post:<\/p>\n<ul>\n<li><a target=\"_new\" href=\"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012.pdf\">2010-2012<\/a><\/li>\n<li><a target=\"_new\" href=\"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2011-2012.pdf\">2011-2012<\/a><\/li>\n<\/ul>\n<p><center><\/p>\n<h3>Rank Order Comparison :: 2010\/2012<\/h3>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2010-2012.png?w=510&#038;ssl=1\"\/><\/center><br \/>\n<center><\/p>\n<h3>Rank Order Comparison :: 2011\/2012<\/h3>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/failed-states-2011-2012.png?w=510&#038;ssl=1\"\/><\/center><\/p>\n<p>While it requires scrolling, the changes in rank are immediately noticeable as is the fact that the the FFP folk allow for ties that leave &#8220;holes&#8221; in the table. I think you really get a feel for which countries are stable, improving and declining very quickly with the slopegraph version, but I&#8217;d like to hear your thoughts if you have an opine you&#8217;d like to share.<\/p>\n<p>Stay tuned for part two!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Fund For Peace (FFP) and Foreign Policy jointly released the 2012 version of the &#8220;failed states index&#8221; (FSI). From the FFP site, the FSI: \u2026focuses on the indicators of risk and is based on thousands of articles and reports that are processed by our CAST Software from electronically available sources. I read it every [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[24,63,7,640],"tags":[751,657,658],"class_list":["post-1334","post","type-post","status-publish","format-standard","hentry","category-charts-graphs","category-development","category-programming","category-python-2","tag-slopegraph","tag-table-chart","tag-tufte"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is\" \/>\n<meta property=\"og:description\" content=\"The Fund For Peace (FFP) and Foreign Policy jointly released the 2012 version of the &#8220;failed states index&#8221; (FSI). From the FFP site, the FSI: \u2026focuses on the indicators of risk and is based on thousands of articles and reports that are processed by our CAST Software from electronically available sources. I read it every [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2012-06-21T04:43:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-10T12:53:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1)\",\"datePublished\":\"2012-06-21T04:43:13+00:00\",\"dateModified\":\"2018-03-10T12:53:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\"},\"wordCount\":601,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png\",\"keywords\":[\"slopegraph\",\"table-chart\",\"tufte\"],\"articleSection\":[\"Charts &amp; Graphs\",\"Development\",\"Programming\",\"Python\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\",\"url\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\",\"name\":\"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png\",\"datePublished\":\"2012-06-21T04:43:13+00:00\",\"dateModified\":\"2018-03-10T12:53:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&ssl=1\",\"width\":\"239\",\"height\":\"260\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rud.is\/b\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rud.is\/b\/#website\",\"url\":\"https:\/\/rud.is\/b\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rud.is\/b\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\/\/rud.is\"],\"url\":\"https:\/\/rud.is\/b\/author\/hrbrmstr\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is","og_description":"The Fund For Peace (FFP) and Foreign Policy jointly released the 2012 version of the &#8220;failed states index&#8221; (FSI). From the FFP site, the FSI: \u2026focuses on the indicators of risk and is based on thousands of articles and reports that are processed by our CAST Software from electronically available sources. I read it every [&hellip;]","og_url":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/","og_site_name":"rud.is","article_published_time":"2012-06-21T04:43:13+00:00","article_modified_time":"2018-03-10T12:53:18+00:00","og_image":[{"url":"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png","type":"","width":"","height":""}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1)","datePublished":"2012-06-21T04:43:13+00:00","dateModified":"2018-03-10T12:53:18+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/"},"wordCount":601,"commentCount":0,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png","keywords":["slopegraph","table-chart","tufte"],"articleSection":["Charts &amp; Graphs","Development","Programming","Python"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/","url":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/","name":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1) - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png","datePublished":"2012-06-21T04:43:13+00:00","dateModified":"2018-03-10T12:53:18+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2012\/06\/FSI-2012-The-Fund-for-Peace.png?fit=239%2C260&ssl=1","width":"239","height":"260"},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2012\/06\/20\/slopegraphs-in-python-failed-states-index-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Slopegraphs in Python \u2013\u00a0Failed States Index (Part 1)"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-lw","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1213,"url":"https:\/\/rud.is\/b\/2012\/06\/07\/slopegraphs-in-python-log-scales-spam-data-analysis\/","url_meta":{"origin":1334,"position":0},"title":"Slopegraphs in Python \u2013 Log Scales &#038; Spam Data Analysis","author":"hrbrmstr","date":"2012-06-07","format":false,"excerpt":"Given the focus on actual development of the PySlopegraph tool in most of the blog posts of late, folks may be wondering why an infosec\/inforisk guy is obsessing so much on a tool and not talking security. Besides the fixation on filling a void and promoting an underused visualization tool,\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1115,"url":"https:\/\/rud.is\/b\/2012\/05\/29\/slopegraphs-in-python-colors-fonts-alignment\/","url_meta":{"origin":1334,"position":1},"title":"Slopegraphs In Python \u2013\u00a0colors, fonts &#038; alignment","author":"hrbrmstr","date":"2012-05-29","format":false,"excerpt":"On the heels of last evening's release of Slopegraphs in Python post comes some minor tweaks: Complete alignment control of labels & and values Colors (for background, lines, labels & values) \u2014 I picked a random pattern from Adobe's Kuler A font change (to prove width calculations work) \u2026and a\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1191,"url":"https:\/\/rud.is\/b\/2012\/06\/07\/slopegraphs-in-python-exploring-binningrounding\/","url_meta":{"origin":1334,"position":2},"title":"Slopegraphs in Python \u2013 Exploring Binning\/Rounding","author":"hrbrmstr","date":"2012-06-07","format":false,"excerpt":"One of the last items for the 1.0 release is support for multiple columns of data. That will require some additional refactoring, so I've been procrastinating by exploring the recent \"fudging\" discovery. Despite claims to the contrary on other sites, there are more folks playing with slopegraphs than you might\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1181,"url":"https:\/\/rud.is\/b\/2012\/06\/05\/slopegraphs-in-python-slope-colors\/","url_meta":{"origin":1334,"position":3},"title":"Slopegraphs in Python \u2013 Slope Colors","author":"hrbrmstr","date":"2012-06-05","format":false,"excerpt":"As the codebase gets closer to the 1.0 stretch we now have the addition of slope colors for when values go up\/down or remain constant between points. The code still only handles two columns of data, but the intent is for each segment to also be colored appropriately (up\/down\/same) in\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2443,"url":"https:\/\/rud.is\/b\/2013\/04\/12\/use-datawrapper-for-slopegraphs\/","url_meta":{"origin":1334,"position":4},"title":"Use @datawrapper For Slopegraphs","author":"hrbrmstr","date":"2013-04-12","format":false,"excerpt":"While not perfect, I noticed that it was possible to make a pretty decent slopegraph over at [Datawrapper](http:\/\/datawrapper.de\/) as I was poking at some new features they announced recently. As an example, I ran one of the charts from my [most recent](http:\/\/rud.is\/b\/2013\/04\/11\/ugly-tables-vs-slopegraphs-pc-maker-shipments-marketshare\/) blog post as an example. If they had\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1089,"url":"https:\/\/rud.is\/b\/2012\/05\/28\/slopegraphs-in-python\/","url_meta":{"origin":1334,"position":5},"title":"Slopegraphs in Python","author":"hrbrmstr","date":"2012-05-28","format":false,"excerpt":"(NOTE: You can keep up with progress best at github, but can always search on \"slopegraph\" here or just hit the tag page: \"slopegraph\" regularly) I've been a bit obsessed with slopegraphs (a.k.a \"Tufte table-chart\") of late and very dissatisfied with the lack of tools to make this particular visualization\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/1334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=1334"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/1334\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=1334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=1334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=1334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}