

{"id":12308,"date":"2019-06-11T16:01:16","date_gmt":"2019-06-11T21:01:16","guid":{"rendered":"https:\/\/rud.is\/b\/?p=12308"},"modified":"2019-06-12T04:32:52","modified_gmt":"2019-06-12T09:32:52","slug":"makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/","title":{"rendered":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc"},"content":{"rendered":"<p>This morning, @kairyssdal tweeted out the following graphic from @axios:<\/p>\n<blockquote class=\"twitter-tweet\" data-theme=\"dark\" data-link-color=\"#FAB81E\">\n<p lang=\"en\" dir=\"ltr\">Confusing, but interesting. <\/p>\n<p>Data shows we&#39;re a nation of news consumption hypocrites &#8211; Axios <a href=\"https:\/\/t.co\/O0lPSc4OV3\">https:\/\/t.co\/O0lPSc4OV3<\/a><\/p>\n<p>&mdash; Kai Ryssdal (@kairyssdal) <a href=\"https:\/\/twitter.com\/kairyssdal\/status\/1138405440578961408?ref_src=twsrc%5Etfw\">June 11, 2019<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>If you&#8217;re doing the right thing and blocking evil social media javascript you can find the Axios story <a href=\"https:\/\/www.axios.com\/news-consumption-read-topics-56467fe6-81bd-4ae5-9173-cdff9865deda.html\">here<\/a> and the graphic below:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12309\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/axios-01\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?fit=1674%2C1304&amp;ssl=1\" data-orig-size=\"1674,1304\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"axios-01\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?fit=510%2C397&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=510%2C397&#038;ssl=1\" alt=\"\" width=\"510\" height=\"397\" class=\"aligncenter size-large wp-image-12309\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=530%2C413&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=150%2C117&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=300%2C234&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=768%2C598&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=500%2C389&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=1200%2C935&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=400%2C312&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=800%2C623&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?resize=200%2C156&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?w=1674&amp;ssl=1 1674w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?w=1020&amp;ssl=1 1020w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-01.png?w=1530&amp;ssl=1 1530w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>I&#8217;m gonna say it: the chart is confusing. I grok what they were trying to do, but this is a clear example where a slopegraph would definitely be a better choice than a directional dumbbell chart. At the time I had ~5 minutes to spare so I <a href=\"https:\/\/twitter.com\/hrbrmstr\/status\/1138413330236878848?s=20\">did a quick makeover<\/a> and <a href=\"https:\/\/twitter.com\/hrbrmstr\/status\/1138416265020747776?s=20\">a short howto thread<\/a>. This post is an expansion on said thread and if you&#8217;re in the midst of making the decision to consider reading or moving on here&#8217;s what we&#8217;ll cover:<\/p>\n<ul>\n<li>Making the choice between scraping or manual data entry  <\/li>\n<li>Quick introduction to <a href=\"https:\/\/ethercalc.net\">EtherCalc<\/a><\/li>\n<li>Why you might consider using EtherCalc for manual data entry over Excel or Google Sheets<\/li>\n<li>Pulling data from EtherCalc into R<\/li>\n<li>Making a slopegraph with the captured data<\/li>\n<li>Customizing the slopegraph with the captured data to tell one or more stories<\/li>\n<\/ul>\n<p>Read on if any or all of that is captures your interest.<\/p>\n<h3>To scrape or not to scrape<\/h3>\n<p>Even if I wanted to scrape the site, Axios <a href=\"https:\/\/www.axios.com\/legal\">makes it pretty clear they are kinda not very nice people<\/a> since &#8212; while it doesn&#8217;t mention scraping &#8212; that ToS link does indicate that:<\/p>\n<blockquote><p>\n  (a) you will not license, sell, rent, lease, transfer, assign, distribute, host, or otherwise commercially exploit the Site or any content displayed on the Site; (b) you will not modify, make derivative works of, disassemble, reverse compile or reverse engineer any part of the Site; (c) you will not access the Site in order to build a similar or competitive website, product, or service; and (d) except as expressly stated herein, no part of the Site may be copied, reproduced, distributed, republished, downloaded, displayed, posted or transmitted in any form or by any means. Unless otherwise indicated, any future release, update, or addition to the Site&#8217;s functionality will be subject to these Terms. All copyright and other proprietary notices on the Site (or on any content displayed on the Site) must be retained on all copies thereof.\n<\/p><\/blockquote>\n<p>(OH NO I COPIED THAT FROM THEIR SITE SO I AM\u00a0ALREADY VIOLATING THEIR [unenforceable] TOS!)<\/p>\n<p>There&#8217;s this thing called <a href=\"https:\/\/fairuse.stanford.edu\/overview\/fair-use\/what-is-fair-use\/\">&#8220;Fair Use&#8221;<\/a> and this makeover I&#8217;m doing is 100% covered under that. The Axios ToS and the ToS of many other sites try to prohibit such fair use and they generally lose those battles in court. I have and will be citing them as sources throughout this post and the post itself falls under &#8220;commentary and criticism&#8221;. Unlike many unethical scrapers who are just scavenging data they did no work to generate and whose work will not serve the better interest of the general community, this post is fully dedicated to sharing and education.<\/p>\n<p>In reality, Axios likely has such draconian ToS due to all the horrible unethical scrapers who just want free, un-cited news content.<\/p>\n<p><em>Anyway<\/em>&hellip;<\/p>\n<p>Even if I could scrape they don&#8217;t embed a javascript data object nor do they load an XHR JSON data blob to make the graphic. They use an idiom of loading a base image then perform annotation via markup:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12310\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/axios-graphic-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?fit=1273%2C778&amp;ssl=1\" data-orig-size=\"1273,778\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"axios-graphic-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?fit=510%2C312&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=510%2C312&#038;ssl=1\" alt=\"\" width=\"510\" height=\"312\" class=\"aligncenter size-large wp-image-12310\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=530%2C324&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=150%2C92&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=300%2C183&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=768%2C469&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=500%2C306&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=1200%2C733&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=400%2C244&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=800%2C489&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?resize=200%2C122&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?w=1273&amp;ssl=1 1273w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/axios-graphic-1.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>making it not worth taking the time to scrape.<\/p>\n<p>That means data entry. ?<\/p>\n<h3>Using EtherCalc for <strike>fun and profit<\/strike> data entry<\/h3>\n<p>I dislike Microsoft Excel (even the modern versions of it) because it is overkill for data entry. I also dislike performing data entry in Google Sheets since that means I need to be cloud-connected. So, for small, local data entry needs I turn to <a href=\"https:\/\/ethercalc.net\">EtherCalc<\/a>. No internet access is required, nor is there a bloated app to run.<\/p>\n<p>EtherCalc is a <em>multiuser<\/em> Google Sheets-like browser-based spreadsheet powered by javascript (both in-browser and the back-end). You can install it with:<\/p>\n<pre><code class=\"language-bash\">$ npm install -g ethercalc\n<\/code><\/pre>\n<p>which assumes you have a working <a href=\"https:\/\/nodejs.org\/en\/\">Node.js<\/a> setup along with <a href=\"https:\/\/www.npmjs.com\/\">npm<\/a>.<\/p>\n<p>When you run:<\/p>\n<pre><code class=\"language-bash\">$ ethercalc\n<\/code><\/pre>\n<p>you are given a URL to hit with your browser. Below is what that looks like with my data entry already complete:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12311\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/ethercalc-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?fit=1638%2C1574&amp;ssl=1\" data-orig-size=\"1638,1574\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ethercalc-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?fit=510%2C490&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=510%2C490&#038;ssl=1\" alt=\"\" width=\"510\" height=\"490\" class=\"aligncenter size-large wp-image-12311\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=530%2C509&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=150%2C144&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=300%2C288&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=768%2C738&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=500%2C480&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=1200%2C1153&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=400%2C384&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=800%2C769&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?resize=200%2C192&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?w=1638&amp;ssl=1 1638w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?w=1020&amp;ssl=1 1020w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/ethercalc-1.png?w=1530&amp;ssl=1 1530w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>It can use Redis or a local filesystem as a persistence layer and does support multiple folks editing the same document at the same time.<\/p>\n<p>At this point I could just save it out manually to a CSV file and read it in the old-fashioned way, but EtherCalc has <a href=\"https:\/\/github.com\/audreyt\/ethercalc\/blob\/master\/API.md\">an API<\/a>! So we can grab the data using <code>{httr}<\/code> calls, like this:<\/p>\n<pre><code class=\"language-r\">library(hrbrthemes)\nlibrary(tidyverse)\n\nhttr::GET(\n  url = \"http:\/\/localhost:8000\/a983kmmne1i7.csv\"\n) -&gt; res\n\n(xdf &lt;- httr::content(res))\n## # A tibble: 14 x 3\n##    topic                actually_read say_want_covered\n##    &lt;chr&gt;                        &lt;dbl&gt;            &lt;dbl&gt;\n##  1 Health care                      7                1\n##  2 Climate change                   5                2\n##  3 Education                       11                3\n##  4 Economics                        6                4\n##  5 Science                         10                7\n##  6 Technology                      14                8\n##  7 Business                        13               11\n##  8 National Security                1                5\n##  9 Politics                         2               10\n## 10 Sports                           3               14\n## 11 Immigration                      4                6\n## 12 Arts &amp; entertainment             8               13\n## 13 U.S. foreign policy              9                9\n## 14 Religion                        12               12\n<\/code><\/pre>\n<p>where <code>a983kmmne1i7<\/code> is the active document identifer.<\/p>\n<p>Now that we have the data, it&#8217;s time to start the makeover.<\/p>\n<h3>Stage 1: A basic slopegraph<\/h3>\n<p>(If you need a primer on slopegraphs, definitely check out <a href=\"http:\/\/www.visualisingdata.com\/2013\/12\/in-praise-of-slopegraphs\/\">this resource<\/a> by @visualisingdata.)<\/p>\n<p>We need to make a decision as to what&#8217;s going where on the slopegraph. I&#8217;m choosing to put what respondents <em>actually read<\/em> on the left and then what they <em>say they want covered<\/em> on the right. Regardless of order, we need to do bit of data wrangling to take a first stab at the chart:<\/p>\n<pre><code class=\"language-r\">ggplot() +\n  # draw the slope lines\n  geom_segment(\n    data = xdf,\n    aes(\n      x = \"Actually read\", y = actually_read,\n      xend = \"Say they\\nwant covered\", yend = say_want_covered\n    )\n  ) +\n  # left and right vertical bars\n  geom_vline(aes(xintercept = c(1, 2)), color = \"#b2b2b2\") +\n  # left and right category text\n  geom_text(data = xdf, aes(\"Actually read\", actually_read, label = topic)) +\n  geom_text(data = xdf, aes(\"Say they\\nwant covered\", say_want_covered, label = topic)) +\n  scale_x_discrete(position = \"top\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12316\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-01a\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?fit=1256%2C1332&amp;ssl=1\" data-orig-size=\"1256,1332\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-01a\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?fit=510%2C541&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=510%2C541&#038;ssl=1\" alt=\"\" width=\"510\" height=\"541\" class=\"aligncenter size-large wp-image-12316\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=530%2C562&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=141%2C150&amp;ssl=1 141w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=283%2C300&amp;ssl=1 283w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=768%2C814&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=500%2C530&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=150%2C159&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=1200%2C1273&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=400%2C424&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=800%2C848&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?resize=200%2C212&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?w=1256&amp;ssl=1 1256w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-01a.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>That chart isn&#8217;t winning any (good) awards any time soon. Apart from the non-aligned category labels, the categories aren&#8217;t in traditional order (rank &#8220;#1&#8221; being at the top on the left), plus we definitely need more information on the chart (title, subtitle, caption, etc.). We&#8217;ll reorder the labels and tweak some of the aesthetic problems away and switch the theme:<\/p>\n<pre><code class=\"language-r\">xdf &lt;- mutate(xdf, dir = factor(sign(actually_read - say_want_covered))) # get the category order right\nxdf &lt;- mutate(xdf, actually_read = -actually_read, say_want_covered = -say_want_covered) # reverse the Y axis\n\nggplot() +\n  geom_segment(\n    data = xdf,\n    aes(\n      \"Actually read\", actually_read,\n      xend = \"Say they\\nwant covered\", yend = say_want_covered\n    ),\n    size = 0.25, color = \"#b2b2b2\"\n  ) +\n  geom_vline(aes(xintercept = c(1, 2)), color = \"#b2b2b2\") +\n  geom_text(\n    data = xdf,\n    aes(\"Actually read\", actually_read, label = topic),\n    family = font_rc, size = 4, hjust = 1, nudge_x = -0.01\n  ) +\n  geom_text(\n    data = xdf,\n    aes(\"Say they\\nwant covered\", say_want_covered, label = topic),\n    family = font_rc, size = 4, hjust = 0, nudge_x = 0.01\n  ) +\n  scale_x_discrete(position = \"top\") +\n  labs(\n    x = NULL, y = NULL,\n    title = \"14 Topics Ranked by What Americans Read vs Want Covered\",\n    subtitle = \"'Read' rank from Parse.ly May 2019 data.\\n'Want covered' rank from Axios\/SurveyMonkey poll conducted May 17-20, 2019\",\n    caption = \"Source: Axios &lt;https:\/\/www.axios.com\/news-consumption-read-topics-56467fe6-81bd-4ae5-9173-cdff9865deda.html&gt;\\nMakeover by @hrbrmstr\"\n  ) +\n  theme_ipsum_rc(grid=\"\") +\n  theme(axis.text = element_blank())\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12320\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-02a\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?fit=1352%2C1332&amp;ssl=1\" data-orig-size=\"1352,1332\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-02a\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?fit=510%2C502&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=510%2C502&#038;ssl=1\" alt=\"\" width=\"510\" height=\"502\" class=\"aligncenter size-large wp-image-12320\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=530%2C522&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=150%2C148&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=300%2C296&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=768%2C757&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=500%2C493&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=1200%2C1182&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=400%2C394&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=800%2C788&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=200%2C197&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=57%2C57&amp;ssl=1 57w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?resize=72%2C72&amp;ssl=1 72w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?w=1352&amp;ssl=1 1352w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-02a.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>That looks much better and I stopped there due to time constraints for the initial thread. However, the slope lines tend to be fairly hard to follow and we really should be telling a story with them. But what story do we want to focus on ?<\/p>\n<h3>Story time<\/h3>\n<p>One aesthetic element we&#8217;ll want to immediately modify regardless of story is the line color. We can use the <code>dir<\/code> column for this:<\/p>\n<pre><code class=\"language-r\">ggplot() +\n  geom_segment(\n    data = xdf,\n    aes(\n      \"Actually read\", actually_read,\n      xend = \"Say they\\nwant covered\", yend = say_want_covered,\n      color = dir, size = dir\n    )\n  ) +\n  geom_vline(aes(xintercept = c(1, 2)), color = \"#b2b2b2\") +\n  geom_text(\n    data = xdf,\n    aes(\"Actually read\", actually_read, label = topic),\n    family = font_rc, size = 4, hjust = 1, nudge_x = -0.01, lineheight = 0.875\n  ) +\n  geom_text(\n    data = xdf,\n    aes(\"Say they\\nwant covered\", say_want_covered, label = topic),\n    family = font_rc, size = 4, hjust = 0, nudge_x = 0.01, lineheight = 0.875\n  ) +\n  scale_x_discrete(position = \"top\") +\n  scale_size_manual(\n    values = c(\n      `-1` = 0.2,\n      `0` = 0.2,\n      `1` = 0.2\n    ),\n  ) +\n  scale_color_manual(\n    name = NULL,\n    values = c(\n      `-1` = ft_cols$red,\n      `0` = \"#2b2b2b\",\n      `1` = ft_cols$blue\n    ),\n    labels = c(\n      `-1` = \"Topics Readers Want Covered &lt; Topics Read\",\n      `0` = \"Topics Read The Same Amount As They Want Covered\",\n      `1` = \"Topics Read &lt; Topics Readers Want Covered\"\n    )\n  ) +\n  guides(\n    size = FALSE\n  ) +\n  labs(\n    x = NULL, y = NULL,\n    title = \"14 Topics Ranked by What Americans Read vs Want Covered\",\n    subtitle = \"'Read' rank from Parse.ly May 2019 data.\\n'Want covered' rank from Axios\/SurveyMonkey poll conducted May 17-20, 2019\",\n    caption = \"Source: Axios &lt;https:\/\/www.axios.com\/news-consumption-read-topics-56467fe6-81bd-4ae5-9173-cdff9865deda.html&gt;\\nMakeover by @hrbrmstr\"\n  ) +\n  theme_ipsum_rc(grid=\"\") +\n  theme(axis.text = element_blank()) +\n  theme(legend.position = \"bottom\") +\n  theme(legend.direction = \"vertical\")\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12322\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-03\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?fit=1326%2C1482&amp;ssl=1\" data-orig-size=\"1326,1482\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-03\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?fit=510%2C570&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=510%2C570&#038;ssl=1\" alt=\"\" width=\"510\" height=\"570\" class=\"aligncenter size-large wp-image-12322\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=530%2C592&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=134%2C150&amp;ssl=1 134w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=268%2C300&amp;ssl=1 268w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=768%2C858&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=500%2C559&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=150%2C168&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=1200%2C1341&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=400%2C447&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=800%2C894&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?resize=200%2C224&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?w=1326&amp;ssl=1 1326w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-03.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>It&#8217;s still somewhat hard to pick out stories and the legend may be useful but it&#8217;s not ideal. Let&#8217;s highlight the different slope types with color, annotate them directly, and see what emerges:<\/p>\n<pre><code class=\"language-r\">library(hrbrthemes)\nlibrary(tidyverse)\n\nhttr::GET(\n  url = \"http:\/\/localhost:8000\/a983kmmne1i7.csv\"\n) -&gt; res\n\n(xdf &lt;- httr::content(res))\n\nxdf &lt;- mutate(xdf, dir = factor(sign(actually_read - say_want_covered)))\nxdf &lt;- mutate(xdf, actually_read = -actually_read, say_want_covered = -say_want_covered)\n\narw &lt;- arrow(length = unit(5, \"pt\"), type = \"closed\")\n#   x = c(1.2, 1.8, 1.9),\n# y = -c(1, 13, 14),\n# xend = c(1.05, 1.7, 1.6),\n# yend = -c(1.125, 13, 14)\n# ),\n# aes(x, y , xend=xend, yend=yend),\n\nggplot() +\n  geom_segment(\n    data = xdf,\n    aes(\n      \"Actually read\", actually_read,\n      xend = \"Say they\\nwant covered\", yend = say_want_covered,\n      color = dir, size = dir\n    ), show.legend = FALSE\n  ) +\n  geom_vline(aes(xintercept = c(1, 2)), color = \"#b2b2b2\") +\n  geom_text(\n    data = xdf,\n    aes(\"Actually read\", actually_read, label = topic),\n    family = font_rc, size = 4, hjust = 1, nudge_x = -0.01, lineheight = 0.875\n  ) +\n  geom_text(\n    data = xdf,\n    aes(\"Say they\\nwant covered\", say_want_covered, label = topic),\n    family = font_rc, size = 4, hjust = 0, nudge_x = 0.01, lineheight = 0.875\n  ) +\n  geom_curve(\n    data = data.frame(), \n    aes(x = 1.2, y = -1, xend = 1.05, yend = -1.125), \n    color = ft_cols$red, arrow = arw\n  ) +\n  geom_segment(\n    data = data.frame(), aes(x = 1.6, xend = 1.6, yend = -12.1, y = -12.9), \n    color = \"#2b2b2b\", arrow = arw\n  ) +\n  geom_curve(\n    data = data.frame(), aes(x = 1.2, y = -14.1, xend = 1.1, yend = -13.6),\n    curvature = -0.5, color = ft_cols$blue, arrow = arw\n  ) +\n  geom_text(\n    data = data.frame(\n      x = c(1.15, 1.6, 1.2),\n      y = -c(1.2, 13, 14),\n      hjust = c(0, 0.5, 0),\n      vjust = c(0.5, 1, 0.5),\n      lab = c(\n        \"Topics Readers Want Covered &lt; Topics Read\",\n        \"Topics Read The Same Amount\\nAs They Want Covered\",\n        \"Topics Read &lt; Topics Readers Want Covered\"\n      ),\n      stringsAsFactors = FALSE\n    ),\n    aes(x, y, hjust = hjust, vjust = vjust, label = lab),\n    family = font_rc, size = 2.5, lineheight = 0.875\n  ) +\n  scale_x_discrete(position = \"top\") +\n  scale_size_manual(\n    values = c(\n      `-1` = 0.75,\n      `0` = 0.2,\n      `1` = 0.2\n    )\n  ) +\n  scale_color_manual(\n    name = NULL,\n    values = c(\n      `-1` = ft_cols$red,\n      `0` = \"#2b2b2b\",\n      `1` = ft_cols$blue\n    )\n  ) +\n  labs(\n    x = NULL, y = NULL,\n    title = \"14 Topics Ranked by What Americans Read vs Want Covered\",\n    subtitle = \"'Read' rank from Parse.ly May 2019 data.\\n'Want covered' rank from Axios\/SurveyMonkey poll conducted May 17-20, 2019\",\n    caption = \"Source: Axios &lt;https:\/\/www.axios.com\/news-consumption-read-topics-56467fe6-81bd-4ae5-9173-cdff9865deda.html&gt;\\nMakeover by @hrbrmstr\"\n  ) +\n  theme(axis.text.x = element_text(size = 12, face = \"bold\", color = \"black\")) +\n  theme(axis.text.y = element_blank())\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12324\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-04\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&amp;ssl=1\" data-orig-size=\"1326,1482\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-04\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=510%2C570&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=510%2C570&#038;ssl=1\" alt=\"\" width=\"510\" height=\"570\" class=\"aligncenter size-large wp-image-12324\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=530%2C592&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=134%2C150&amp;ssl=1 134w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=268%2C300&amp;ssl=1 268w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=768%2C858&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=500%2C559&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=150%2C168&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=1200%2C1341&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=400%2C447&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=800%2C894&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?resize=200%2C224&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?w=1326&amp;ssl=1 1326w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>This first story indicates a potential social desirability bias in the respondents in that they claim to care more about health care, climate change, and education but really care more about more frivolous things (sports), base things (politics), and things they have almost no control over (national security).<\/p>\n<p>Let&#8217;s switch the focus (only showing the modified aesthetic to avoid a code DoS):<\/p>\n<pre><code class=\"language-r\">  scale_size_manual(\n    values = c(\n      `-1` = 0.2,\n      `0` = 0.2,\n      `1` = 0.75\n    )\n  ) +\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12326\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-05\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?fit=1326%2C1482&amp;ssl=1\" data-orig-size=\"1326,1482\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-05\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?fit=510%2C570&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=510%2C570&#038;ssl=1\" alt=\"\" width=\"510\" height=\"570\" class=\"aligncenter size-large wp-image-12326\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=530%2C592&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=134%2C150&amp;ssl=1 134w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=268%2C300&amp;ssl=1 268w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=768%2C858&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=500%2C559&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=150%2C168&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=1200%2C1341&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=400%2C447&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=800%2C894&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?resize=200%2C224&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?w=1326&amp;ssl=1 1326w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-05.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>Now we get to see just how far down on the priority list some of the &#8220;desired coverage&#8221; topics really sit. At least Health care is not at the bottom, but given how much technology controls our lives it&#8217;s a bit disconcerting to see that at the bottom.<\/p>\n<p>What about the categories that did not differ in rank:<\/p>\n<pre><code class=\"language-r\">  scale_size_manual(\n    values = c(\n      `-1` = 0.2,\n      `0` = 0.75,\n      `1` = 0.2\n    )\n  ) +\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"12328\" data-permalink=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/slope-06\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?fit=1326%2C1482&amp;ssl=1\" data-orig-size=\"1326,1482\" 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;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"slope-06\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?fit=510%2C570&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=510%2C570&#038;ssl=1\" alt=\"\" width=\"510\" height=\"570\" class=\"aligncenter size-large wp-image-12328\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=530%2C592&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=134%2C150&amp;ssl=1 134w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=268%2C300&amp;ssl=1 268w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=768%2C858&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=500%2C559&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=150%2C168&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=1200%2C1341&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=400%2C447&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=800%2C894&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?resize=200%2C224&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?w=1326&amp;ssl=1 1326w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-06.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>You&#8217;re guess is as good as mine why folks rated these the same (assuming the surveys had similar language).<\/p>\n<h3>FIN<\/h3>\n<p>Now that you&#8217;ve got the data (oh, right, I forgot to do that):<\/p>\n<pre><code class=\"language-r\">structure(list(topic = c(\"Health care\", \"Climate change\", \"Education\", \n\"Economics\", \"Science\", \"Technology\", \"Business\", \"National Security\", \n\"Politics\", \"Sports\", \"Immigration\", \"Arts &amp; entertainment\", \n\"U.S. foreign policy\", \"Religion\"), actually_read = c(7, 5, 11, \n6, 10, 14, 13, 1, 2, 3, 4, 8, 9, 12), say_want_covered = c(1, \n2, 3, 4, 7, 8, 11, 5, 10, 14, 6, 13, 9, 12)), class = c(\"spec_tbl_df\", \n\"tbl_df\", \"tbl\", \"data.frame\"), row.names = c(NA, -14L), spec = structure(list(\n    cols = list(topic = structure(list(), class = c(\"collector_character\", \n    \"collector\")), actually_read = structure(list(), class = c(\"collector_double\", \n    \"collector\")), say_want_covered = structure(list(), class = c(\"collector_double\", \n    \"collector\"))), default = structure(list(), class = c(\"collector_guess\", \n    \"collector\")), skip = 1), class = \"col_spec\"))\n<\/code><\/pre>\n<p>and some alternate views, perhaps you have an even better way to look at it. Drop a note in the comments with any of your creations or suggestions for improvement for the final versions shown here.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This morning, @kairyssdal tweeted out the following graphic from @axios: Confusing, but interesting. Data shows we&#39;re a nation of news consumption hypocrites &#8211; Axios https:\/\/t.co\/O0lPSc4OV3 &mdash; Kai Ryssdal (@kairyssdal) June 11, 2019 If you&#8217;re doing the right thing and blocking evil social media javascript you can find the Axios story here and the graphic below: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":12324,"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":false,"_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":[91],"tags":[],"class_list":["post-12308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - 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\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - rud.is\" \/>\n<meta property=\"og:description\" content=\"This morning, @kairyssdal tweeted out the following graphic from @axios: Confusing, but interesting. Data shows we&#039;re a nation of news consumption hypocrites &#8211; Axios https:\/\/t.co\/O0lPSc4OV3 &mdash; Kai Ryssdal (@kairyssdal) June 11, 2019 If you&#8217;re doing the right thing and blocking evil social media javascript you can find the Axios story here and the graphic below: [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2019-06-11T21:01:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-12T09:32:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1326\" \/>\n\t<meta property=\"og:image:height\" content=\"1482\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc\",\"datePublished\":\"2019-06-11T21:01:16+00:00\",\"dateModified\":\"2019-06-12T09:32:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/\"},\"wordCount\":1234,\"commentCount\":8,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/slope-04.png?fit=1326%2C1482&ssl=1\",\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/\",\"name\":\"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/slope-04.png?fit=1326%2C1482&ssl=1\",\"datePublished\":\"2019-06-11T21:01:16+00:00\",\"dateModified\":\"2019-06-12T09:32:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/slope-04.png?fit=1326%2C1482&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/slope-04.png?fit=1326%2C1482&ssl=1\",\"width\":1326,\"height\":1482},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2019\\\/06\\\/11\\\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc\"}]},{\"@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":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - 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\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/","og_locale":"en_US","og_type":"article","og_title":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - rud.is","og_description":"This morning, @kairyssdal tweeted out the following graphic from @axios: Confusing, but interesting. Data shows we&#39;re a nation of news consumption hypocrites &#8211; Axios https:\/\/t.co\/O0lPSc4OV3 &mdash; Kai Ryssdal (@kairyssdal) June 11, 2019 If you&#8217;re doing the right thing and blocking evil social media javascript you can find the Axios story here and the graphic below: [&hellip;]","og_url":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/","og_site_name":"rud.is","article_published_time":"2019-06-11T21:01:16+00:00","article_modified_time":"2019-06-12T09:32:52+00:00","og_image":[{"width":1326,"height":1482,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","type":"image\/png"}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc","datePublished":"2019-06-11T21:01:16+00:00","dateModified":"2019-06-12T09:32:52+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/"},"wordCount":1234,"commentCount":8,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/","url":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/","name":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","datePublished":"2019-06-11T21:01:16+00:00","dateModified":"2019-06-12T09:32:52+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","width":1326,"height":1482},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2019\/06\/11\/makeover-jumbalaya-beating-dumbbells-into-slopegraphs-whilst-orchestrating-ethercalc\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Makeover Jambalaya: Beating Dumbbells into Slopegraphs Whilst Orchestrating EtherCalc"}]},{"@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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/slope-04.png?fit=1326%2C1482&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-3cw","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":12576,"url":"https:\/\/rud.is\/b\/2019\/12\/27\/short-attention-span-theatre-reproducing-axios-1-big-thing-google-trends-2019-news-in-review-with-ggplot2\/","url_meta":{"origin":12308,"position":0},"title":"Short Attention Span Theatre: Reproducing Axios&#8217; &#8220;1 Big Thing&#8221; Google Trends 2019 News In Review with {ggplot2}","author":"hrbrmstr","date":"2019-12-27","format":false,"excerpt":"I woke up to Axios' \"1 Big Thing\" ridgeline chart showing the crazy that was the 2019 news cycle: and, I decided to reproduce it in {ggplot2}. Getting The Data First, I had to find the data. The Axios chart is interactive, so I assumed the visualization was built on-load.\u2026","rel":"","context":"In &quot;ggplot&quot;","block_context":{"text":"ggplot","link":"https:\/\/rud.is\/b\/category\/ggplot\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":43805,"url":"https:\/\/rud.is\/b\/2025\/12\/20\/are-we-becoming-children-of-the-magentai\/","url_meta":{"origin":12308,"position":1},"title":"Are We Becoming Children of the MagentAI?","author":"hrbrmstr","date":"2025-12-20","format":false,"excerpt":"(If you'd prefer, you can skip the intro blathering and just download the full white paper) Back in 1997, a commercial airline captain noticed his fellow pilots had a problem: they'd gotten so used to following the magenta flight path lines on their fancy new navigation screens that they were\u2026","rel":"","context":"In &quot;Commentary&quot;","block_context":{"text":"Commentary","link":"https:\/\/rud.is\/b\/category\/commentary\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12195,"url":"https:\/\/rud.is\/b\/2019\/05\/18\/mapping-tornado-alley-with-r\/","url_meta":{"origin":12308,"position":2},"title":"Mapping Tornado Alley with R","author":"hrbrmstr","date":"2019-05-18","format":false,"excerpt":"I caught a re-tweet of this tweet by @harry_stevens: THREAD: I wrote a post on @observablehq about a map I made today. It shows a typical day in the life of a graphics journalist: You never know what problems you'll have to solve on deadline! https:\/\/t.co\/yRhW1wbLxN #d3js #dataviz 1\/7 pic.twitter.com\/7N6mmK0nz3\u2014\u2026","rel":"","context":"In &quot;cartography&quot;","block_context":{"text":"cartography","link":"https:\/\/rud.is\/b\/category\/cartography\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/map-final-header.png?fit=1001%2C970&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/map-final-header.png?fit=1001%2C970&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/map-final-header.png?fit=1001%2C970&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/map-final-header.png?fit=1001%2C970&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":3649,"url":"https:\/\/rud.is\/b\/2015\/08\/27\/coloring-and-drawing-outside-the-lines-in-ggplot\/","url_meta":{"origin":12308,"position":3},"title":"Coloring (and Drawing) Outside the Lines in ggplot","author":"hrbrmstr","date":"2015-08-27","format":false,"excerpt":"Time for another Twitter-inspired blog post this week, this time from a tweet by @JonKalodimos: Is there a way to do this in #rstats #ggplot2 https:\/\/t.co\/kxWQFlYpbB\u2014 Jonathan Kalodimos (@JonKalodimos) August 27, 2015 I had seen and appreciated Ann's post on her makeover of the main graphic in [NPR's story](http:\/\/www.npr.org\/sections\/money\/2014\/10\/21\/357629765\/when-women-stopped-coding) and\u2026","rel":"","context":"In &quot;Data Visualization&quot;","block_context":{"text":"Data Visualization","link":"https:\/\/rud.is\/b\/category\/data-visualization\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1474,"url":"https:\/\/rud.is\/b\/2012\/07\/07\/beach-blanket-tweetupa-k-a-granitesec-tweetup-5\/","url_meta":{"origin":12308,"position":4},"title":"Beach Blanket Tweetup(a.k.a. GraniteSec Tweetup #5)","author":"hrbrmstr","date":"2012-07-07","format":false,"excerpt":"Brylcream? Check. Decked out in your best Frankie Avalon or Annette Funicello beach fashions? Check. Now, polish up your cruiser and get ready 'cuz @GraniteSec is heading back to Fort Foster [info] [map] at Kittery Point, Maine for it's fifth family & friends tweetup! We can't promise mermaids or sky-diving\u2026","rel":"","context":"In &quot;GraniteSec&quot;","block_context":{"text":"GraniteSec","link":"https:\/\/rud.is\/b\/category\/granitesec\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1155,"url":"https:\/\/rud.is\/b\/2012\/06\/05\/slopegraphs-the-quintessential-gdp-example-revisited\/","url_meta":{"origin":12308,"position":5},"title":"Slopegraphs \u2013\u00a0The Quintessential Tufte GDP Example Revisited","author":"hrbrmstr","date":"2012-06-05","format":false,"excerpt":"If you're even remotely familiar with slopegraphs, then you'll recognize Tufte's classic 1970-1979 GDP chart example (click for larger version): What you may not notice initially, however, is that Tufte \u2014 well \u2014\u00a0cheated. Yes, I said it. Cheated. I can show it by zooming into the \"Belgium\/Canada\/Finland\" grouping in the\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\/12308","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=12308"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/12308\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/12324"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=12308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=12308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=12308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}