

{"id":7149,"date":"2017-11-18T10:33:40","date_gmt":"2017-11-18T15:33:40","guid":{"rendered":"https:\/\/rud.is\/b\/?p=7149"},"modified":"2018-03-07T16:54:13","modified_gmt":"2018-03-07T21:54:13","slug":"statebins-reimagined","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/","title":{"rendered":"Statebins Reimagined"},"content":{"rendered":"<p>A long time ago, in a github repo far, far away there lived a tiny package that made it possible to create equal area, square U.S. state cartograms in R dubbed <a href=\"https:\/\/github.com\/hrbrmstr\/statebins\"><code>statebins<\/code>?<\/a>. Three years have come and gone and &#8212; truth be told &#8212; I&#8217;ve never been happy with that package. It never felt &#8220;right&#8221; and that gnawing feeling finally turned into action with a &#8220;re-imagining&#8221; of the API.<\/p>\n<h3>Previously, on <code>statebins<\/code>&hellip;<\/h3>\n<p>There were three different functions in the old-style package:<\/p>\n<ul>\n<li>one for discrete scales (it automated &#8216;cuts&#8217;)<\/li>\n<li>one for continuous scales<\/li>\n<li>one for manual scales<\/li>\n<\/ul>\n<p>It also did some hack-y stuff with <code>grobs<\/code> to try to get things to look good without putting too much burden on the user.<\/p>\n<p>All that &#8220;mostly&#8221; worked, but I always ended up doing some painful workaround when I needed more custom charts (not that I have to use this package much given the line of work I&#8217;m in).<\/p>\n<h3>Downsizing <code>statebins<\/code><\/h3>\n<p>Now, there&#8217;s just <em>one<\/em> function for making the cartograms &#8212;  <code>statebins()<\/code> &#8212; and another for applying a base theme  &#8212; <code>theme_statebins()<\/code>. The minimalisation has some advantages that we&#8217;ll take a look at now, starting with the most basic example (the one on the manual page):<\/p>\n<pre id=\"statebinsri01\"><code class=\"language-r\">library(statebins)\r\nlibrary(tidyverse)\r\n\r\ndata(USArrests)\r\n\r\nUSArrests$state &lt;- rownames(USArrests)\r\nstatebins(USArrests, value_col=&quot;Assault&quot;, name = &quot;Assault&quot;) +\r\n  theme_statebins(legend_position=&quot;right&quot;)<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7150\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/plot_zoom_png-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-3.png?fit=1708%2C1024&amp;ssl=1\" data-orig-size=\"1708,1024\" 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=\"plot_zoom_png\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-3.png?fit=510%2C306&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-3.png?resize=510%2C306&#038;ssl=1\" alt=\"\" width=\"510\" height=\"306\" class=\"aligncenter size-full wp-image-7150\" \/><\/a><\/p>\n<p>Two things should stand out there:<\/p>\n<ul>\n<li>you got <code>scale_fill_distiller()<\/code> for free!<\/li>\n<li>labels are dark\/light depending on the tile color<\/li>\n<\/ul>\n<p>Before we go into ^^, it may be helpful to show the new function interface:<\/p>\n<pre id=\"statebinsri02\"><code class=\"language-r\">library(statebins)\r\nlibrary(tidyverse)\r\n\r\nstatebins(state_data, state_col = &quot;state&quot;, value_col = &quot;value&quot;,\r\n  dark_label = &quot;black&quot;, light_label = &quot;white&quot;, font_size = 3,\r\n  state_border_col = &quot;white&quot;, state_border_size = 2,\r\n  ggplot2_scale_function = ggplot2::scale_fill_distiller, ...)<\/code><\/pre>\n<p>You pass in the state name\/abbreviation &amp; value columns like the old interface but also specify colors for the dark &amp; light labels (set hex code color with <code>00<\/code> ending alpha values if you don&#8217;t want labels but Muricans are pretty daft and generally need the abbreviations on the squares). You can set the font size, too (we&#8217;ll do that in a bit) and customize the border color (usually to match the background of the target medium). BUT, you <em>also<\/em> pass in the ggplot2 scale function you want to use and the named parameters for it (that&#8217;s what the <code>...<\/code> is for).<\/p>\n<p>So, <em>yes<\/em> I&#8217;ve placed more of a burden on <em>you<\/em> if you want discrete cuts, but I&#8217;ve also made the package way more flexible <em>and<\/em> made it possible to keep the labels readable without you having to lift an extra coding finger.<\/p>\n<p>The <code>theme()<\/code>-ing is also moved out to a separate theme function which makes it easier for you to further customize the final output.<\/p>\n<h3>But that&#8217;s not all!<\/h3>\n<p>There are now squares for Puerto Rico, the Virgin Islands and New York City (the latter two were primarily for new features\/data in <code>cdcfluview<\/code> but they are good to have available). Let&#8217;s build out a larger example with some of these customizations (we&#8217;ll make up some data to do that):<\/p>\n<pre id=\"statebinsri03\"><code class=\"language-r\">library(statebins)\r\nlibrary(tidyverse)\r\nlibrary(viridis)\r\n\r\ndata(USArrests)\r\n\r\n# make up some data for the example\r\n\r\nrownames_to_column(USArrests, &quot;state&quot;) %&gt;%\r\n  bind_rows(\r\n    data_frame(\r\n      state = c(&quot;Virgin Islands&quot;, &quot;Puerto Rico&quot;, &quot;New York City&quot;),\r\n      Murder = rep(mean(max(USArrests$Murder),3)),\r\n      Assault = rep(mean(max(USArrests$Assault),3)),\r\n      Rape = rep(mean(max(USArrests$Rape),3)),\r\n      UrbanPop = c(93, 95, 100)\r\n    )\r\n  ) -&gt; us_arrests\r\n\r\nstatebins(us_arrests, value_col=&quot;Assault&quot;,\r\n          ggplot2_scale_function = viridis::scale_fill_viridis) +\r\n  labs(title=&quot;USArrests + made up data&quot;) +\r\n  theme_statebins(&quot;right&quot;)<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-4-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7154\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/unnamed-chunk-4-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-4-1.png?fit=1344%2C960&amp;ssl=1\" data-orig-size=\"1344,960\" 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=\"unnamed-chunk-4-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-4-1.png?fit=510%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-4-1.png?resize=510%2C364&#038;ssl=1\" alt=\"\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-7154\" \/><\/a><\/p>\n<h3>Cutting to the chase<\/h3>\n<p>I still think it makes more sense to use binned data in these cartograms, and while you no longer get that for &#8220;free&#8221;, it&#8217;s not difficult to do:<\/p>\n<pre id=\"statebinsri04\"><code class=\"language-r\">adat &lt;- suppressMessages(read_csv(system.file(&quot;extdata&quot;, &quot;wapostates.csv&quot;, package=&quot;statebins&quot;)))\r\n\r\nmutate(\r\n  adat, \r\n  share = cut(avgshare94_00, breaks = 4, labels = c(&quot;0-1&quot;, &quot;1-2&quot;, &quot;2-3&quot;, &quot;3-4&quot;))\r\n) %&gt;% \r\n  statebins(\r\n    value_col = &quot;share&quot;, \r\n    ggplot2_scale_function = scale_fill_brewer,\r\n    name = &quot;Share of workforce with jobs lost or threatened by trade&quot;\r\n  ) +\r\n  labs(title = &quot;1994-2000&quot;) +\r\n  theme_statebins()<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7156\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/unnamed-chunk-3-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&amp;ssl=1\" data-orig-size=\"1344,960\" 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=\"unnamed-chunk-3-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=510%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?resize=510%2C364&#038;ssl=1\" alt=\"\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-7156\" \/><\/a><\/p>\n<h3>More manual labor<\/h3>\n<p>You can also still use hardcoded colors, but it&#8217;s a little more work on your end (but not much!):<\/p>\n<pre id=\"statebinsri05\"><code class=\"language-r\">library(statebins)\r\nlibrary(tidyverse)\r\n\r\nelection_2012 &lt;- suppressMessages(read_csv(system.file(&quot;extdata&quot;, &quot;election2012.csv&quot;, package=&quot;statebins&quot;)))\r\n\r\nmutate(election_2012, value = ifelse(is.na(Obama), &quot;Romney&quot;, &quot;Obama&quot;)) %&gt;% \r\n  statebins(\r\n    font_size=4, dark_label = &quot;white&quot;, light_label = &quot;white&quot;,\r\n    ggplot2_scale_function = scale_fill_manual,\r\n    name = &quot;Winner&quot;,\r\n    values = c(Romney = &quot;#2166ac&quot;, Obama = &quot;#b2182b&quot;)\r\n  ) +\r\n  theme_statebins()<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-6.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7157\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/unnamed-chunk-3-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-6.png?fit=1344%2C960&amp;ssl=1\" data-orig-size=\"1344,960\" 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=\"unnamed-chunk-3-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-6.png?fit=510%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-6.png?resize=510%2C364&#038;ssl=1\" alt=\"\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-7157\" \/><\/a><\/p>\n<h3>BREAKING NEWS: Rounded corners<\/h3>\n<p>A Twitter request ended up turning into a new feature this afternoon (after I made this post) => rounded corners:<\/p>\n<pre id=\"statebinsri06\"><code class=\"language-r\">library(statebins)\r\nlibrary(tidyverse)\r\ndata(USArrests)\r\n\r\nUSArrests$state &lt;- rownames(USArrests)\r\nstatebins(USArrests, value_col=&quot;Assault&quot;, name = &quot;Assault&quot;, round=TRUE) +\r\n  theme_statebins(legend_position=&quot;right&quot;)<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/rounded-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7164\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/rounded-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/rounded-1.png?fit=1344%2C960&amp;ssl=1\" data-orig-size=\"1344,960\" 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=\"rounded-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/rounded-1.png?fit=510%2C364&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/rounded-1.png?resize=510%2C364&#038;ssl=1\" alt=\"\" width=\"510\" height=\"364\" class=\"aligncenter size-full wp-image-7164\" \/><\/a><\/p>\n<h3>MOAR BREAKING NEWS: geom &amp; faceting<\/h3>\n<p>Thomas Wood <a href=\"https:\/\/github.com\/hrbrmstr\/statebins\/issues\/10\">suggested<\/a> that faceting wld be nice, but that would really require a <code>Geom<\/code>. So, I took a stab at one:<\/p>\n<pre id=\"statebinsri07\"><code class=\"language-r\">library(statebins)\r\nlibrary(cdcfluview)\r\nlibrary(hrbrthemes)\r\nlibrary(tidyverse)\r\n\r\nflu &lt;- ili_weekly_activity_indicators(2017)\r\n\r\nggplot(flu, aes(state=statename, fill=activity_level)) +\r\n  geom_statebins() +\r\n  coord_equal() +\r\n  viridis::scale_fill_viridis(\r\n    name = &quot;ILI Activity Level  &quot;, limits=c(0,10), breaks=0:10, option = &quot;magma&quot;, direction = -1\r\n  ) +\r\n  facet_wrap(~weekend) +\r\n  labs(title=&quot;2017-18 Flu Season ILI Activity Level&quot;) +\r\n  theme_statebins(base_family = font_ps) +\r\n  theme(plot.title=element_text(size=16, hjust=0)) +\r\n  theme(plot.margin = margin(30,30,30,30))<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-1-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7180\" data-permalink=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/plot_zoom_png-1-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-1-1.png?fit=1732%2C1080&amp;ssl=1\" data-orig-size=\"1732,1080\" 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=\"plot_zoom_png-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-1-1.png?fit=510%2C318&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-1-1.png?resize=510%2C318&#038;ssl=1\" alt=\"\" width=\"510\" height=\"318\" class=\"aligncenter size-full wp-image-7180\" \/><\/a><\/p>\n<h3>FIN<\/h3>\n<p>It&#8217;ll be a while before this hits CRAN and I&#8217;m not really planning on keeping the old interface when the submission happens. So, it&#8217;ll be <a href=\"https:\/\/github.com\/hrbrmstr\/statebins\">on GitHub<\/a> for a bit to let folks chime in on what additional features you want and whether you really <em>need<\/em> to keep the deprecated functions around in the package.<\/p>\n<p>So, kick the tyres and don&#8217;t hesitate to shoot over some feedback!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A long time ago, in a github repo far, far away there lived a tiny package that made it possible to create equal area, square U.S. state cartograms in R dubbed statebins?. Three years have come and gone and &#8212; truth be told &#8212; I&#8217;ve never been happy with that package. It never felt &#8220;right&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7156,"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":[810],"class_list":["post-7149","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r","tag-post"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Statebins Reimagined - 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\/2017\/11\/18\/statebins-reimagined\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Statebins Reimagined - rud.is\" \/>\n<meta property=\"og:description\" content=\"A long time ago, in a github repo far, far away there lived a tiny package that made it possible to create equal area, square U.S. state cartograms in R dubbed statebins?. Three years have come and gone and &#8212; truth be told &#8212; I&#8217;ve never been happy with that package. It never felt &#8220;right&#8221; [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2017-11-18T15:33:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T21:54:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1344\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\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\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Statebins Reimagined\",\"datePublished\":\"2017-11-18T15:33:40+00:00\",\"dateModified\":\"2018-03-07T21:54:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/\"},\"wordCount\":678,\"commentCount\":12,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1\",\"keywords\":[\"post\"],\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/\",\"name\":\"Statebins Reimagined - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1\",\"datePublished\":\"2017-11-18T15:33:40+00:00\",\"dateModified\":\"2018-03-07T21:54:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1\",\"width\":1344,\"height\":960},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/11\\\/18\\\/statebins-reimagined\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Statebins Reimagined\"}]},{\"@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":"Statebins Reimagined - 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\/2017\/11\/18\/statebins-reimagined\/","og_locale":"en_US","og_type":"article","og_title":"Statebins Reimagined - rud.is","og_description":"A long time ago, in a github repo far, far away there lived a tiny package that made it possible to create equal area, square U.S. state cartograms in R dubbed statebins?. Three years have come and gone and &#8212; truth be told &#8212; I&#8217;ve never been happy with that package. It never felt &#8220;right&#8221; [&hellip;]","og_url":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/","og_site_name":"rud.is","article_published_time":"2017-11-18T15:33:40+00:00","article_modified_time":"2018-03-07T21:54:13+00:00","og_image":[{"width":1344,"height":960,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&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\/2017\/11\/18\/statebins-reimagined\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Statebins Reimagined","datePublished":"2017-11-18T15:33:40+00:00","dateModified":"2018-03-07T21:54:13+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/"},"wordCount":678,"commentCount":12,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1","keywords":["post"],"articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/","url":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/","name":"Statebins Reimagined - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1","datePublished":"2017-11-18T15:33:40+00:00","dateModified":"2018-03-07T21:54:13+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1","width":1344,"height":960},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2017\/11\/18\/statebins-reimagined\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Statebins Reimagined"}]},{"@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\/2017\/11\/unnamed-chunk-3-1.png?fit=1344%2C960&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-1Rj","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":3399,"url":"https:\/\/rud.is\/b\/2015\/05\/14\/geojson-hexagonal-statebins-in-r\/","url_meta":{"origin":7149,"position":0},"title":"GeoJSON Hexagonal &#8220;Statebins&#8221; in R","author":"hrbrmstr","date":"2015-05-14","format":false,"excerpt":"There's been lots of buzz about \"statebin\" maps of late. A recent tweet by @andrewxhill referencing work by @dannydb pointed to a nice shapefile (alternate link) that ends up being a really great way to handle statebin maps (and I feel like a fool for not considering it for a\u2026","rel":"","context":"In &quot;cartography&quot;","block_context":{"text":"cartography","link":"https:\/\/rud.is\/b\/category\/cartography\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3094,"url":"https:\/\/rud.is\/b\/2014\/10\/13\/spending-seized-assets-a-state-by-state-per-capita-comparison-in-r\/","url_meta":{"origin":7149,"position":1},"title":"Spending Seized Assets &#8211; A State-by-State Per-capita Comparison in R","author":"hrbrmstr","date":"2014-10-13","format":false,"excerpt":"The Washingon Post did another great story+vis, this time on states [Spending seized assets](http:\/\/www.washingtonpost.com\/wp-srv\/special\/investigative\/asset-seizures\/). According to their sub-head: >_Since 2008, about 5,400 police agencies have spent $2.5 billion in proceeds from cash and property seized under federal civil forfeiture laws. Police suspected the assets were linked to crime, although in\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12216,"url":"https:\/\/rud.is\/b\/2019\/05\/21\/add-dressbarn-to-the-continued-retailpocalypse\/","url_meta":{"origin":7149,"position":2},"title":"Add Dressbarn to the Continued Retailpocalypse","author":"hrbrmstr","date":"2019-05-21","format":false,"excerpt":"I've talked about the retailpocalypse before and this morning I was greeted with the news about Dressbarn closing all 650 stores as I fired up a browser. I tweeted some pix and data but not everyone is on Twitter so I'm just posting a blog-blurb here with the code and\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\/05\/dressbarn-per-capita-heatmap.png?fit=1200%2C844&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/dressbarn-per-capita-heatmap.png?fit=1200%2C844&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/dressbarn-per-capita-heatmap.png?fit=1200%2C844&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/dressbarn-per-capita-heatmap.png?fit=1200%2C844&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/05\/dressbarn-per-capita-heatmap.png?fit=1200%2C844&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3292,"url":"https:\/\/rud.is\/b\/2015\/03\/07\/streamgraph-package-now-supports-continuous-x-axis-scale\/","url_meta":{"origin":7149,"position":3},"title":"Streamgraph package now supports continuous x axis scale","author":"hrbrmstr","date":"2015-03-07","format":false,"excerpt":"A post on [StackOverflow](http:\/\/stackoverflow.com\/questions\/28725604\/streamgraphs-dataviz-in-r-wont-plot) asked about using a continuous variable for the x-axis (vs dates) in my [streamgraph package](http:\/\/github.com\/hrbrmstr\/streamgraph). While I provided a workaround for the question, it helped me bump up the priority for adding support for continuous x axis scales. With the [DBIR](http:\/\/www.verizonenterprise.com\/DBIR\/) halfway behind me now, I\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5118,"url":"https:\/\/rud.is\/b\/2017\/02\/26\/hrbrthemes-0-1-0-is-now-on-cran\/","url_meta":{"origin":7149,"position":4},"title":"hrbrthemes 0.1.0 is now on CRAN","author":"hrbrmstr","date":"2017-02-26","format":false,"excerpt":"I'm pleased to announce the inaugural release of my hrbrthemes (0.1.0) package on CRAN The primary goal of said package is to provide opinionated typographical and other aesthetic defaults for ggplot2 charts. Two core themes are included: theme_ipsum() \u2013 an Arial Narrow-based theme theme_ipsum_rc() \u2013 a Roboto Condensed-based theme. 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":[]},{"id":12388,"url":"https:\/\/rud.is\/b\/2019\/06\/30\/make-refreshing-segmented-column-charts-with-ggchicklet\/","url_meta":{"origin":7149,"position":5},"title":"Make Refreshing Segmented Column Charts with {ggchicklet}","author":"hrbrmstr","date":"2019-06-30","format":false,"excerpt":"The first U.S. Democratic debates of the 2020 election season were held over two nights this past week due to the daft number of candidates running for POTUS. The spiffy @NYTgraphics folks took the tallies of time spent blathering by each speaker\/topic and made rounded rectangle segmented bar charts ordered\u2026","rel":"","context":"In &quot;ggplot&quot;","block_context":{"text":"ggplot","link":"https:\/\/rud.is\/b\/category\/ggplot\/"},"img":{"alt_text":"final chicklet chart","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/chicklet-07-1.png?fit=1200%2C960&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/chicklet-07-1.png?fit=1200%2C960&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/chicklet-07-1.png?fit=1200%2C960&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/chicklet-07-1.png?fit=1200%2C960&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/06\/chicklet-07-1.png?fit=1200%2C960&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/7149","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=7149"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/7149\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/7156"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=7149"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=7149"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=7149"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}