

{"id":7713,"date":"2017-12-21T23:59:34","date_gmt":"2017-12-22T04:59:34","guid":{"rendered":"https:\/\/rud.is\/b\/?p=7713"},"modified":"2018-03-10T08:01:08","modified_gmt":"2018-03-10T13:01:08","slug":"new-package-swatches-is-now-on-cran","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","title":{"rendered":"New Package swatches  is Now on CRAN"},"content":{"rendered":"<p>It&#8217;s been a long time coming, but <a href=\"https:\/\/github.com\/hrbrmstr\/swatches\"><code>swatches<\/code>?<\/a> is now <a href=\"https:\/\/cran.r-project.org\/web\/packages\/swatches\/index.html\">on CRAN<\/a>.<\/p>\n<h2>What is &#8220;swatches&#8221;?<\/h2>\n<p>First off, <code>swatches<\/code> has nothing to do with those faux-luxury brand Swiss-made timepieces. <code>swatches<\/code> is all about <span style=\"color:#e41a1c\">c<\/span><span style=\"color:#377eb8\">o<\/span><span style=\"color:#4daf4a\">l<\/span><span style=\"color:#984ea3\">o<\/span><span style=\"color:#ff7f00\">r<\/span>.<\/p>\n<p>R\/CRAN has plenty of color picking packages. The <a href=\"https:\/\/cran.r-project.org\/web\/packages\/colourlovers\/index.html\"><code>colourlovers<\/code>?<\/a> ? by @thosjleeper is one of my favs. But, color palettes have been around for ages. Adobe has two: Adobe Color (ACO) and Adobe Swatch Exchange (ASE); GIMP has &#8220;GPL&#8221;; OpenOffice has &#8220;SOC&#8221; and KDE has the unimaginative &#8220;colors&#8221;. So. Many. Formats. Wouldn&#8217;t it be great if there were a package that read them all in with a simple <code>read_palette()<\/code> function? Well, now there is.<\/p>\n<p>I threw together a fledgling version of <code>swatches<\/code> a few years ago to read in ACO files from a $DAYJOB at the time and it cascaded from there. I decided to resurrect it and get it on CRAN to support a forthcoming &#8220;year in review&#8221; post that will make its way to your RSS feeds on-or-about December 31st.<\/p>\n<h2>True Colors Shining Through<\/h2>\n<p>Let&#8217;s say you want to get ahead of the game in 2018 and start preparing to dazzle your audience by using a palette that incorporates PANTONE&#8217;s 2018 Color of the Year (yes, that&#8217;s &#8220;a thing&#8221;) : <a href=\"https:\/\/www.pantone.com\/color-of-the-year-2018-tools-for-designers\">Ultra Violet<\/a>.<\/p>\n<p>If you scroll down there, you&#8217;ll see a <a href=\"https:\/\/www.pantone.com\/images\/pages\/21348\/adobe-ase\/Pantone-COY18-Palette-ASE-files.zip\">download link<\/a> for an ASE version of the palettes. We can skip that and start with some R code:<\/p>\n<pre id=\"swpantone01\"><code class=\"language-r\">library(swatches)\r\nlibrary(hrbrthemes)\r\nlibrary(tidyverse)\r\n\r\ndownload.file(&quot;https:\/\/www.pantone.com\/images\/pages\/21348\/adobe-ase\/Pantone-COY18-Palette-ASE-files.zip&quot;, &quot;ultra_violet.zip&quot;)\r\nunique(dirname((unzip(&quot;ultra_violet.zip&quot;))))\r\n## [1] &quot;.\/Pantone COY18 Palette ASE files&quot;\r\n## [2] &quot;.\/__MACOSX\/Pantone COY18 Palette ASE files&quot;\r\n\r\n\r\ndir(&quot;.\/Pantone COY18 Palette ASE files&quot;)\r\n#  [1] &quot;PantoneCOY18-Attitude.ase&quot;         &quot;PantoneCOY18-Desert Sunset.ase&quot;   \r\n#  [3] &quot;PantoneCOY18-Drama Queen.ase&quot;      &quot;PantoneCOY18-Floral Fantasies.ase&quot;\r\n#  [5] &quot;PantoneCOY18-Intrigue.ase&quot;         &quot;PantoneCOY18-Kindred Spirits.ase&quot; \r\n#  [7] &quot;PantoneCOY18-Purple Haze.ase&quot;      &quot;PantoneCOY18-Quietude.ase&quot;<\/code><\/pre>\n<p>Ah, if only the designers cleaned up their ZIP file.<\/p>\n<p>We&#8217;ve got eight palettes to poke at, and hopefully one will be decent enough to use for our plots.<\/p>\n<p>Let&#8217;s take a look:<\/p>\n<pre id=\"swpantone02\"><code class=\"language-r\">par(mfrow=c(8,1))\r\n\r\ndir(&quot;.\/Pantone COY18 Palette ASE files&quot;, full.names=TRUE) %&gt;% \r\n  walk(~{\r\n    pal_name &lt;- gsub(&quot;(^[[:alnum:]]+-|\\\\.ase$)&quot;, &quot;&quot;, basename(.x))\r\n    show_palette(read_palette(.x))\r\n    title(pal_name)\r\n  })\r\n\r\npar(mfrow=c(1,1))<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7715\" data-permalink=\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/plot_zoom_png-8\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png.png?fit=1342%2C2806&amp;ssl=1\" data-orig-size=\"1342,2806\" 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-medium-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png.png?fit=143%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png.png?fit=490%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png.png?resize=510%2C1066&#038;ssl=1\" alt=\"\" width=\"510\" height=\"1066\" class=\"aligncenter size-full wp-image-7715\" \/><\/a><\/p>\n<p>I had initially thought I&#8217;d go for &#8220;Attitude&#8221;, but <span class=\"removed_link\" title=\"https::\/\/getflux.com\">f.lux<\/span> kicked in and &#8220;Intrigue&#8221; warmed better, so let&#8217;s go with that one.<\/p>\n<pre id=\"swpantone03\"><code class=\"language-r\">(intrigue &lt;- read_palette(&quot;.\/Pantone COY18 Palette ASE files\/PantoneCOY18-Intrigue.ase&quot;))\r\n## PANTONE 19-4053 TCX PANTONE 17-4328 TCX PANTONE 18-3838 TCX PANTONE 18-0324 TCX PANTONE 19-3917 TCX \r\n##           &quot;#195190&quot;           &quot;#3686A0&quot;           &quot;#5F4B8B&quot;           &quot;#757A4E&quot;           &quot;#4E4B51&quot; \r\n## PANTONE 15-0927 TCX PANTONE 14-5002 TCX PANTONE 14-3949 TCX \r\n##           &quot;#BD9865&quot;           &quot;#A2A2A1&quot;           &quot;#B7C0D7&quot;<\/code><\/pre>\n<p>Having the PANTONE names is all-well-and-good, but those are going to be less-useful in a <code>ggplot2<\/code> context due to the way factors are mapped to names in character color vectors in manual scales, so let&#8217;s head that off at the pass:<\/p>\n<pre id=\"swpantone04\"><code class=\"language-r\">(intrigue &lt;- read_palette(&quot;.\/Pantone COY18 Palette ASE files\/PantoneCOY18-Intrigue.ase&quot;, use_names=FALSE))\r\n## [1] &quot;#195190&quot; &quot;#3686A0&quot; &quot;#5F4B8B&quot; &quot;#757A4E&quot; &quot;#4E4B51&quot; &quot;#BD9865&quot; &quot;#A2A2A1&quot; &quot;#B7C0D7&quot;<\/code><\/pre>\n<p>Beautiful.<\/p>\n<p>Let&#8217;s put our new color scale to work! We&#8217;ve got 8 colors to work with, but won&#8217;t need all of them (at least for a quick example):<\/p>\n<pre id=\"swpantone05\"><code class=\"language-r\">ggplot(economics_long, aes(date, value)) +\r\n  geom_area(aes(fill=variable)) +\r\n  scale_y_comma() +\r\n  scale_fill_manual(values=intrigue) +\r\n  facet_wrap(~variable, scales = &quot;free&quot;, nrow = 2, strip.position = &quot;bottom&quot;) +\r\n  theme_ipsum_rc(grid=&quot;XY&quot;, strip_text_face=&quot;bold&quot;) +\r\n  theme(strip.placement = &quot;outside&quot;) +\r\n  theme(legend.position=c(0.85, 0.2))<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7717\" data-permalink=\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/plot_zoom_png-9\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&amp;ssl=1\" data-orig-size=\"1820,1120\" 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-medium-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=300%2C185&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=510%2C314&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?resize=510%2C314&#038;ssl=1\" alt=\"\" width=\"510\" height=\"314\" class=\"aligncenter size-full wp-image-7717\" \/><\/a><\/p>\n<p>This is far from a perfect palette, but it definitely helped illustrate basic package usage without inflicting ocular damage (remember: I <em>could<\/em> have picked an obnoxious Christmas palette :-)<\/p>\n<h2>More Practical Uses<\/h2>\n<p>If your workplace or the workplace you&#8217;re consulting for has brand guidelines, then they likely have swatches in one of the supported formats. <a href=\"https:\/\/www.google.com\/search?q=brand+colors+swatches\">Lot&#8217;s do<\/a>.<\/p>\n<p>You can keep those colors swatches in their native format and try out different ones as your designers refresh their baseline styles.<\/p>\n<h2>FIN<\/h2>\n<p>As always, <a href=\"https:\/\/github.com\/hrbrmstr\/swatches\">kick the tyres<\/a>, file issues, questions or PRs and hopefully the package will help refresh some designs for all of us in the coming year.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been a long time coming, but swatches? is now on CRAN. What is &#8220;swatches&#8221;? First off, swatches has nothing to do with those faux-luxury brand Swiss-made timepieces. swatches is all about color. R\/CRAN has plenty of color picking packages. The colourlovers? ? by @thosjleeper is one of my favs. But, color palettes have been [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7717,"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-7713","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.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>New Package swatches is Now on CRAN - 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\/12\/21\/new-package-swatches-is-now-on-cran\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New Package swatches is Now on CRAN - rud.is\" \/>\n<meta property=\"og:description\" content=\"It&#8217;s been a long time coming, but swatches? is now on CRAN. What is &#8220;swatches&#8221;? First off, swatches has nothing to do with those faux-luxury brand Swiss-made timepieces. swatches is all about color. R\/CRAN has plenty of color picking packages. The colourlovers? ? by @thosjleeper is one of my favs. But, color palettes have been [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-22T04:59:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-10T13:01:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1820\" \/>\n\t<meta property=\"og:image:height\" content=\"1120\" \/>\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=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"New Package swatches is Now on CRAN\",\"datePublished\":\"2017-12-22T04:59:34+00:00\",\"dateModified\":\"2018-03-10T13:01:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\"},\"wordCount\":507,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1\",\"keywords\":[\"post\"],\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\",\"url\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\",\"name\":\"New Package swatches is Now on CRAN - rud.is\",\"isPartOf\":{\"@id\":\"https:\/\/rud.is\/b\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1\",\"datePublished\":\"2017-12-22T04:59:34+00:00\",\"dateModified\":\"2018-03-10T13:01:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1\",\"width\":1820,\"height\":1120},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rud.is\/b\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New Package swatches is Now on CRAN\"}]},{\"@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":"New Package swatches is Now on CRAN - 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\/12\/21\/new-package-swatches-is-now-on-cran\/","og_locale":"en_US","og_type":"article","og_title":"New Package swatches is Now on CRAN - rud.is","og_description":"It&#8217;s been a long time coming, but swatches? is now on CRAN. What is &#8220;swatches&#8221;? First off, swatches has nothing to do with those faux-luxury brand Swiss-made timepieces. swatches is all about color. R\/CRAN has plenty of color picking packages. The colourlovers? ? by @thosjleeper is one of my favs. But, color palettes have been [&hellip;]","og_url":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","og_site_name":"rud.is","article_published_time":"2017-12-22T04:59:34+00:00","article_modified_time":"2018-03-10T13:01:08+00:00","og_image":[{"width":1820,"height":1120,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","type":"image\/png"}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"New Package swatches is Now on CRAN","datePublished":"2017-12-22T04:59:34+00:00","dateModified":"2018-03-10T13:01:08+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/"},"wordCount":507,"commentCount":0,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","keywords":["post"],"articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","url":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","name":"New Package swatches is Now on CRAN - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","datePublished":"2017-12-22T04:59:34+00:00","dateModified":"2018-03-10T13:01:08+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","width":1820,"height":1120},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"New Package swatches is Now on CRAN"}]},{"@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\/12\/plot_zoom_png-1.png?fit=1820%2C1120&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-20p","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":7924,"url":"https:\/\/rud.is\/b\/2018\/01\/18\/bitcoin-world-map-bubbles\/","url_meta":{"origin":7713,"position":0},"title":"Bitcoin (World Map) Bubbles","author":"hrbrmstr","date":"2018-01-18","format":false,"excerpt":"We're doing some interesting studies (cybersecurity-wise, not finance-wise) on digital currency networks at work-work and --- while I'm loathe to create a geo-map from IPv4 geolocation data --- we: do get (often, woefully inaccurate) latitude & longitude data from our geolocation service (I won't name-and-shame here); and, there are definite\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\/2018\/01\/map-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\/2018\/01\/map-1.png?fit=1200%2C960&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/map-1.png?fit=1200%2C960&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/map-1.png?fit=1200%2C960&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/map-1.png?fit=1200%2C960&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3340,"url":"https:\/\/rud.is\/b\/2015\/03\/20\/fixing-colors-proportions-in-jerusalem-post-election-graphics\/","url_meta":{"origin":7713,"position":1},"title":"Fixing Colors &#038; Proportions in Jerusalem Post Election Graphics","author":"hrbrmstr","date":"2015-03-20","format":false,"excerpt":"Vis expert Naomi Robbins did an excellent [critique](http:\/\/www.forbes.com\/sites\/naomirobbins\/2015\/03\/19\/color-problems-with-figures-from-the-jerusalem-post\/) of the [graphics](http:\/\/www.jpost.com\/Israel-Elections\/Analysis-The-Israel-election-decided-by-one-vote-394229) that went along with an article on Israeli election in the Jerusalem Post. Non-uniform and color-blind-unfriendly categorical colors and disproportionate arc sizes are definitely three substantial issues in that series of visualizations. We can rectify all of them with\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":11765,"url":"https:\/\/rud.is\/b\/2019\/01\/14\/splashr-0-6-0-now-uses-the-cran-nascent-stevedore-package-for-docker-orchestration\/","url_meta":{"origin":7713,"position":2},"title":"splashr 0.6.0 Now Uses the CRAN-nascent stevedore Package for Docker Orchestration","author":"hrbrmstr","date":"2019-01-14","format":false,"excerpt":"The splashr package [srht|GL|GH] \u2014 an alternative to Selenium for javascript-enabled\/browser-emulated web scraping \u2014 is now at version 0.6.0 (still in dev-mode but on its way to CRAN in the next 14 days). The major change from version 0.5.x (which never made it to CRAN) is a swap out of\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":12004,"url":"https:\/\/rud.is\/b\/2019\/02\/28\/drat-all-the-%f0%9f%93%a6-enabling-easier-package-discovery-and-installation-with-your-own-cran-like-repo-for-your-packages\/","url_meta":{"origin":7713,"position":3},"title":"drat All The ?! : Enabling Easier Package Discovery and Installation with Your Own CRAN-like Repo for Your Packages","author":"hrbrmstr","date":"2019-02-28","format":false,"excerpt":"I've got a work-in-progress drat-ified CRAN-like repo for (eventually) all my packages over at CINC? (\"CINC is not CRAN\" and it also sounds like \"sync\"). This is in parallel with a co-location\/migration of all my packages to SourceHut (just waiting for the sr.ht alpha API to be baked) and 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":11775,"url":"https:\/\/rud.is\/b\/2019\/01\/21\/hrbrthemes-0-6-0-on-cran-other-in-development-package-news\/","url_meta":{"origin":7713,"position":4},"title":"hrbrthemes 0.6.0 on CRAN + Other In-Development Package News","author":"hrbrmstr","date":"2019-01-21","format":false,"excerpt":"Version 0.6.0 of the hrbrthemes? package should be hitting a CRAN mirror near you soon. Apart from some general documentation and code cleanup this release includes the dark theme folks have been seeing in blog posts and tweets over the past few months. It's called theme_ft_rc() since it is an\u2026","rel":"","context":"In &quot;maine&quot;","block_context":{"text":"maine","link":"https:\/\/rud.is\/b\/category\/maine\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/nc-idc-coverage.png?fit=1200%2C456&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":11921,"url":"https:\/\/rud.is\/b\/2019\/02\/17\/conquering-caffeinated-amazon-athena-with-the-metis-trio-of-packages\/","url_meta":{"origin":7713,"position":5},"title":"Conquering Caffeinated Amazon Athena with the metis Trio of Packages","author":"hrbrmstr","date":"2019-02-17","format":false,"excerpt":"I must preface this post with the posit that if you're doing anything interactive() with Amazon Athena you should seriously consider just using their free ODBC drivers as it's the easiest way to wire them up to R DBI- and tidyverse-wise. I've said as much in previous posts. Drop a\u2026","rel":"","context":"In &quot;athena&quot;","block_context":{"text":"athena","link":"https:\/\/rud.is\/b\/category\/athena\/"},"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\/7713","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=7713"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/7713\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/7717"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=7713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=7713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=7713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}