

{"id":13175,"date":"2021-08-13T15:23:00","date_gmt":"2021-08-13T20:23:00","guid":{"rendered":"https:\/\/rud.is\/b\/?p=13175"},"modified":"2021-08-13T15:23:00","modified_gmt":"2021-08-13T20:23:00","slug":"some-covid-donuts-to-end-the-week","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/","title":{"rendered":"Some Covid Donuts To End The Week"},"content":{"rendered":"<p>Vox <a href=\"https:\/\/www.kff.org\/policy-watch\/covid-19-vaccine-breakthrough-cases-data-from-the-states\/\">grabbed some data from the Kaiser Family Foundation<\/a> and did <a href=\"https:\/\/www.vox.com\/22602039\/breakthrough-cases-covid-19-delta-variant-masks-vaccines\">a story<\/a> a few days ago on it, then posted a different visualization of it that attracted some attention:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"13176\" data-permalink=\"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/e8nbqo2xeaal_e2\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?fit=975%2C972&amp;ssl=1\" data-orig-size=\"975,972\" 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=\"E8nbQo2XEAAL_E2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?fit=510%2C508&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=510%2C508&#038;ssl=1\" alt=\"\" width=\"510\" height=\"508\" class=\"aligncenter size-large wp-image-13176\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=530%2C528&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=768%2C766&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=500%2C498&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=400%2C399&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=800%2C798&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=200%2C199&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=57%2C57&amp;ssl=1 57w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=72%2C72&amp;ssl=1 72w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=114%2C114&amp;ssl=1 114w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=144%2C144&amp;ssl=1 144w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?resize=96%2C96&amp;ssl=1 96w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/E8nbQo2XEAAL_E2.jpeg?w=975&amp;ssl=1 975w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n<p>I&#8217;m a pretty ardent donut detractor, but I have to also admit that they work pretty well for this use case, and we can reproduce the graphic in R quite nicely. The following code chunk:<\/p>\n<ul>\n<li>scrapes the datawrapper chart Vox embedded in their original article<\/li>\n<li>extracts the data from it using V8<\/li>\n<li>reformats it and uses some basic ggplot2 idioms for making the facets<\/li>\n<\/ul>\n<pre><code class=\"language-r\">library(V8) # we need to execute javascript to get the data\nlibrary(ggtext) # pretty ggtext\nlibrary(stringi) # some basic string ops\nlibrary(rvest) # scraping!\nlibrary(hrbragg) # remotes::install_github(\"hrbrmstr\/hrbragg\")\nlibrary(tidyverse) # duh\n\nctx &lt;- v8() # init the V8 engine\n\npg &lt;- read_html(\"https:\/\/datawrapper.dwcdn.net\/jlEL9\/6\/\") # get the data \u2014 this is embedded in the Vox article\n\n# clean up the javascript so we can evaluate it\nhtml_nodes(pg, xpath = \".\/\/script[contains(., 'DW_SVEL')]\") %&gt;% \n  html_text() %&gt;% \n  stri_replace_first_fixed(\"window.\", \"\") %&gt;% \n  stri_replace_all_regex(\"window.__.*\", \"\", multiline = TRUE) %&gt;% \n  ctx$eval()\n\n# get the dat from the V8 engine and reshape it a bit, then join it with state abbreviations\nctx$get(\"__DW_SVELTE_PROPS__\")$data %&gt;% \n  read_tsv(\n    col_names = c(\n      \"state\", \n      \"Reported cases among fully vaccinated\", \n      \"Reported cases among not fully vaccinated\"\n    )\n  ) %&gt;% \n  gather(measure, value, -state) %&gt;% \n  left_join(\n    tibble(\n      state = state.name,\n      abbr = state.abb\n    ) %&gt;% \n      add_row(\n        state = \"District of Columbia\",\n        abbr = \"DC\"\n      ) \n  ) -&gt; voxxed\n\n# basic ggplot idiom for faceted donuts\n\nggplot() +\n  geom_col(\n    data = voxxed,\n    aes(3, value, fill = measure), # play with \"3\" here and below to change width of the donut\n    color = NA,\n    position = position_stack()\n  ) +\n  ggtext::geom_richtext(\n    data = voxxed %&gt;% filter(measure == \"Reported cases among not fully vaccinated\"),\n    # change 0.2 and 0 to see what they do\n    aes(0.2, 0, label = sprintf(\"%s&lt;br\/&gt;&lt;b&gt;&lt;span style='color:#8a264a'&gt;%s%%&lt;\/span&gt;&lt;\/b&gt;\", abbr, value)),\n    size = 5, label.size = 0\n  ) +\n  scale_x_continuous(\n    limits = c(0.2, 3 + 0.5) # this 3 links to the 3 above. tweak 0.2 and 0.5 to see what it does to the shape\n  ) +\n  scale_fill_manual(\n    name = NULL,\n    values = c(\n      \"Reported cases among fully vaccinated\" = \"#d59e67\",\n      \"Reported cases among not fully vaccinated\" = \"#8a264a\"\n    )\n  ) +\n  coord_polar(theta = \"y\") +\n  facet_wrap(~state, ncol = 6) +\n  labs(\n    x = NULL, y = NULL,\n    title = \"Breakthrough cases are not driving the US Covid-19 surge\",\n    caption = \"Source: Kaiser Family Foundation\\nNote: Case data in recent months, as of July\\nOriginal chart by Vox &lt;https:\/\/www.vox.com\/22602039\/breakthrough-cases-covid-19-delta-variant-masks-vaccines&gt;\"\n  ) +\n  theme_inter(grid=\"\") +\n  theme(\n    axis.text.x = elb(),\n    axis.text.x.top = elb(),\n    axis.text.x.bottom = elb(),\n    axis.text.y = elb(),\n    axis.text.y.left = elb(),\n    axis.text.y.right = elb()\n  ) +\n  theme(\n    panel.spacing.x = unit(0, \"npc\"),\n    panel.spacing.y = unit(0, \"npc\")\n  ) + \n  theme(\n    strip.text = elb(),\n    strip.text.x = elb(),\n    strip.text.y = elb()\n  ) +\n  theme(\n    legend.position = \"top\",\n    legend.text = elt(size = 12),\n    legend.justification = \"left\"\n  ) +\n  theme(\n    plot.caption = elt(hjust = 0)\n  )\n<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"13181\" data-permalink=\"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/covid-donuts-01\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&amp;ssl=1\" data-orig-size=\"2020,1550\" 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=\"covid-donuts-01\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=510%2C392&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=510%2C392&#038;ssl=1\" alt=\"\" width=\"510\" height=\"392\" class=\"aligncenter size-large wp-image-13181\" srcset=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=530%2C407&amp;ssl=1 530w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=300%2C230&amp;ssl=1 300w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=150%2C115&amp;ssl=1 150w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=768%2C589&amp;ssl=1 768w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=1536%2C1179&amp;ssl=1 1536w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=500%2C384&amp;ssl=1 500w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=1200%2C921&amp;ssl=1 1200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=400%2C307&amp;ssl=1 400w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=800%2C614&amp;ssl=1 800w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?resize=200%2C153&amp;ssl=1 200w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?w=2020&amp;ssl=1 2020w, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?w=1020&amp;ssl=1 1020w\" sizes=\"auto, (max-width: 510px) 100vw, 510px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vox grabbed some data from the Kaiser Family Foundation and did a story a few days ago on it, then posted a different visualization of it that attracted some attention: I&#8217;m a pretty ardent donut detractor, but I have to also admit that they work pretty well for this use case, and we can reproduce [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":13181,"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-13175","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>Some Covid Donuts To End The Week - 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\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Some Covid Donuts To End The Week - rud.is\" \/>\n<meta property=\"og:description\" content=\"Vox grabbed some data from the Kaiser Family Foundation and did a story a few days ago on it, then posted a different visualization of it that attracted some attention: I&#8217;m a pretty ardent donut detractor, but I have to also admit that they work pretty well for this use case, and we can reproduce [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-13T20:23:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"2020\" \/>\n\t<meta property=\"og:image:height\" content=\"1550\" \/>\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=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Some Covid Donuts To End The Week\",\"datePublished\":\"2021-08-13T20:23:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/\"},\"wordCount\":102,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/covid-donuts-01.png?fit=2020%2C1550&ssl=1\",\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/\",\"name\":\"Some Covid Donuts To End The Week - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/covid-donuts-01.png?fit=2020%2C1550&ssl=1\",\"datePublished\":\"2021-08-13T20:23:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/covid-donuts-01.png?fit=2020%2C1550&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/covid-donuts-01.png?fit=2020%2C1550&ssl=1\",\"width\":2020,\"height\":1550},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2021\\\/08\\\/13\\\/some-covid-donuts-to-end-the-week\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Some Covid Donuts To End The Week\"}]},{\"@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":"Some Covid Donuts To End The Week - 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\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/","og_locale":"en_US","og_type":"article","og_title":"Some Covid Donuts To End The Week - rud.is","og_description":"Vox grabbed some data from the Kaiser Family Foundation and did a story a few days ago on it, then posted a different visualization of it that attracted some attention: I&#8217;m a pretty ardent donut detractor, but I have to also admit that they work pretty well for this use case, and we can reproduce [&hellip;]","og_url":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/","og_site_name":"rud.is","article_published_time":"2021-08-13T20:23:00+00:00","og_image":[{"width":2020,"height":1550,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","type":"image\/png"}],"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\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Some Covid Donuts To End The Week","datePublished":"2021-08-13T20:23:00+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/"},"wordCount":102,"commentCount":4,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/","url":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/","name":"Some Covid Donuts To End The Week - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","datePublished":"2021-08-13T20:23:00+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","width":2020,"height":1550},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2021\/08\/13\/some-covid-donuts-to-end-the-week\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Some Covid Donuts To End The Week"}]},{"@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\/2021\/08\/covid-donuts-01.png?fit=2020%2C1550&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-3qv","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":3622,"url":"https:\/\/rud.is\/b\/2015\/08\/21\/doh-i-could-have-had-just-used-v8\/","url_meta":{"origin":13175,"position":0},"title":"Doh! I Could Have Had Just Used V8!","author":"hrbrmstr","date":"2015-08-21","format":false,"excerpt":"An R user recently had the need to split a \"full, human name\" into component parts to retrieve first & last names. The full names could be anything from something simple like _\"David Regan\"_ to more complex & diverse such as _\"John Smith Jr.\"_, _\"Izaque Iuzuru Nagata\"_ or _\"Christian Schmit\u2026","rel":"","context":"In &quot;Javascript&quot;","block_context":{"text":"Javascript","link":"https:\/\/rud.is\/b\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12718,"url":"https:\/\/rud.is\/b\/2020\/04\/01\/uaparserjs-updated-on-cran-using-webpack-to-make-v8-application-bundles\/","url_meta":{"origin":13175,"position":1},"title":"{uaparserjs} Updated on CRAN &#038; Using webpack to Make {V8}  Application Bundles","author":"hrbrmstr","date":"2020-04-01","format":false,"excerpt":"Just a quick note that thanks to a gentle nudge an updated version of {uaparser} --- a package that processes User Agent strings web clients send to servers --- is making its way to all the CRAN mirrors and is also available on CINC. The most significant change is a\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4501,"url":"https:\/\/rud.is\/b\/2016\/07\/07\/bridging-the-political-polygons-gap-with-ggplot2\/","url_meta":{"origin":13175,"position":2},"title":"Bridging The Political [Polygons] Gap with ggplot2","author":"hrbrmstr","date":"2016-07-07","format":false,"excerpt":"The @pewresearch folks have been collecting political survey data for quite a while, and I noticed the [visualization below](http:\/\/www.people-press.org\/2014\/06\/12\/section-1-growing-ideological-consistency\/#interactive) referenced in a [Tableau vis contest entry](https:\/\/www.interworks.com\/blog\/rrouse\/2016\/06\/24\/politics-viz-contest-plotting-political-polarization): Those are filled [frequency polygons](http:\/\/onlinestatbook.com\/2\/graphing_distributions\/freq_poly.html), which are super-easy to replicate in ggplot2, especially since Pew even _kind of_ made the data available via their\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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/07\/engfull.png?fit=1200%2C1098&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/07\/engfull.png?fit=1200%2C1098&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/07\/engfull.png?fit=1200%2C1098&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/07\/engfull.png?fit=1200%2C1098&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/07\/engfull.png?fit=1200%2C1098&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":7466,"url":"https:\/\/rud.is\/b\/2017\/12\/10\/a-workaround-for-when-anti-ddos-also-means-anti-data\/","url_meta":{"origin":13175,"position":3},"title":"A Workaround For When Anti-DDoS Also Means Anti-Data","author":"hrbrmstr","date":"2017-12-10","format":false,"excerpt":"More sites are turning to services like Cloudflare due to just how stupid-easy it is to DDoS --- perform a (possibly Distributed) Denial of Service attack on -- a site. Sometimes the DDoS is intentional (malicious). Sometimes it's because your bot didn't play nice (stop that, btw). Sadly, at some\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6115,"url":"https:\/\/rud.is\/b\/2017\/07\/25\/r%e2%81%b6-general-attys-distributions\/","url_meta":{"origin":13175,"position":4},"title":"R\u2076 \u2014 General (Attys) Distributions","author":"hrbrmstr","date":"2017-07-25","format":false,"excerpt":"Matt @stiles is a spiffy data journalist at the @latimes and he posted an interesting chart on U.S. Attorneys General longevity (given that the current US AG is on thin ice): Only Watergate and the Civil War have prompted shorter tenures as AG (if Sessions were to leave now). A\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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/07\/plot_zoom_png-2.png?fit=1200%2C1076&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/07\/plot_zoom_png-2.png?fit=1200%2C1076&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/07\/plot_zoom_png-2.png?fit=1200%2C1076&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/07\/plot_zoom_png-2.png?fit=1200%2C1076&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/07\/plot_zoom_png-2.png?fit=1200%2C1076&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":12162,"url":"https:\/\/rud.is\/b\/2019\/04\/27\/quick-hit-scraping-javascript-enabled-sites-with-htmlunit\/","url_meta":{"origin":13175,"position":5},"title":"Quick Hit: Scraping javascript-&#8220;enabled&#8221; Sites with {htmlunit}","author":"hrbrmstr","date":"2019-04-27","format":false,"excerpt":"I've mentioned {htmlunit} in passing before, but did not put any code in the blog post. Since I just updated {htmlunitjars} to the latest and greatest version, now might be a good time to do a quick demo of it. The {htmlunit}\/{htmunitjars} packages make the functionality of the HtmlUnit Java\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/04\/quotes-to-scrape-03.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/04\/quotes-to-scrape-03.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/04\/quotes-to-scrape-03.png?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/04\/quotes-to-scrape-03.png?resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/04\/quotes-to-scrape-03.png?resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/13175","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=13175"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/13175\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/13181"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=13175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=13175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=13175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}