

{"id":5965,"date":"2017-05-21T09:32:21","date_gmt":"2017-05-21T14:32:21","guid":{"rendered":"https:\/\/rud.is\/b\/?p=5965"},"modified":"2018-03-10T07:54:27","modified_gmt":"2018-03-10T12:54:27","slug":"a-very-pallete-able-post","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/","title":{"rendered":"A Very Palette-able  Post"},"content":{"rendered":"<div style=\"border: 0.5px solid gray; padding:8px\">UPDATE: I was reminded that I made a more generic version of <code>adobecolor<\/code> to handle many types of swatch files which you can find <a href=\"https:\/\/github.com\/hrbrmstr\/swatches\">on github<\/a>.<\/div>\n<p>Many of my posts seem to begin with a link to a tweet, and this one falls into that pattern:<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p lang=\"en\" dir=\"ltr\">And <a href=\"https:\/\/mobile.twitter.com\/_inundata\">@_inundata<\/a> is already working on a <a href=\"https:\/\/mobile.twitter.com\/hashtag\/rstats?src=hash\">#rstats<\/a> palette. <a href=\"https:\/\/t.co\/bNfpL7OmVl\">https:\/\/t.co\/bNfpL7OmVl<\/a><\/p>\n<p>&mdash; Timoth\u00e9e Poisot (@tpoi) <a href=\"https:\/\/mobile.twitter.com\/tpoi\/status\/866136213174071296\">May 21, 2017<\/a><\/p><\/blockquote>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>I&#8217;d seen the <a href=\"https:\/\/arstechnica.com\/information-technology\/2017\/05\/an-ai-invented-a-bunch-of-new-paint-colors-that-are-hilariously-wrong\/\">Ars Tech post<\/a> about the named color palette derived from some training data. I could tell at a glance of the resultant palette:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/tumblr_inline_opgsh0UI6N1rl9zu7_400.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"5966\" data-permalink=\"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/tumblr_inline_opgsh0ui6n1rl9zu7_400\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/tumblr_inline_opgsh0UI6N1rl9zu7_400.png?fit=249%2C557&amp;ssl=1\" data-orig-size=\"249,557\" 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=\"tumblr_inline_opgsh0UI6N1rl9zu7_400\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/tumblr_inline_opgsh0UI6N1rl9zu7_400.png?fit=249%2C557&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/tumblr_inline_opgsh0UI6N1rl9zu7_400.png?resize=249%2C557&#038;ssl=1\" alt=\"\" width=\"249\" height=\"557\" class=\"aligncenter size-full wp-image-5966\" \/><\/a><\/p>\n<p>that it would not be ideal for visualizations (use <a href=\"http:\/\/www.color-blindness.com\/coblis-color-blindness-simulator\/\">this site<\/a> test the final image in this post and verify that on your own) but this was a neat, quick project to take on, especially since it let me dust off an old GH package, <a href=\"https:\/\/github.com\/hrbrmstr\/adobecolor\"><code>adobecolor<\/code><\/a> and it was likely I could beat Karthik to creating a palette ;-)<\/p>\n<p>The &#8220;B+&#8221; goal is to get a color palette that &#8220;matches&#8221; the one in the Tumlbr post. The &#8220;A&#8221; goal is to get a named palette.<\/p>\n<p>These are all the packages we end up using:<\/p>\n<pre id=\"aco-pal-01\"><code class=\"language-r\">library(tesseract)\r\nlibrary(magick)\r\nlibrary(stringi)\r\nlibrary(adobecolor) # hrbrmstr\/adobecolor - may not be Windows friendly\r\nlibrary(tidyverse)<\/code><\/pre>\n<h3>Attempt #1 (B+!!)<\/h3>\n<p>I&#8217;m a macOS user, so I&#8217;ve got great tools like <a href=\"https:\/\/xscopeapp.com\/\">xScope<\/a> at my disposal. I&#8217;m <em>really<\/em> handy with that app and the Loupe tool makes it easy to point at a color, save it to a palette board and export an ACO palette file.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/Loupe.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"5967\" data-permalink=\"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/loupe\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/Loupe.png?fit=300%2C284&amp;ssl=1\" data-orig-size=\"300,284\" 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=\"Loupe\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/Loupe.png?fit=300%2C284&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/Loupe.png?resize=300%2C284&#038;ssl=1\" alt=\"\" width=\"300\" height=\"284\" class=\"aligncenter size-full wp-image-5967\" \/><\/a><\/p>\n<p>That whole process took ~18 seconds (first try). I&#8217;m not saying that to brag. But we often get hung up on both speed and programmatic reproducibility. I ultimately &#8212; as we&#8217;ll see in a bit &#8212; really went for speed vs programmatic reproducibility.<\/p>\n<p>It&#8217;s dead simple to get the palette into R:<\/p>\n<pre id=\"aco-pal-02\"><code class=\"language-r\">aco_fil &lt;- &quot;ml_cols.aco&quot;\r\naco_hex &lt;- rev(read_aco(aco_fil))\r\n\r\ncol2rgb(aco_hex)\r\n##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]\r\n## red    112  203   97  191  120  221  169  233  177   216    62   178   199\r\n## green  112  198   92  174  114  196  167  191  138   200    63   184   172\r\n## blue    85  166   73  156  124  199  171  143  109   185    67   196   146\r\n##       [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23]\r\n## red      48   172   177   203   219   162   152   232   197   191\r\n## green    94   152   100   205   210    98   165   177   161   161\r\n## blue     83   145   107   192   179   106   158   135   171   124<\/code><\/pre>\n<p>IIRC there may still be a byte-order issue (PRs welcome) I need to deal with on Windows in <code>adobecolor<\/code> but you likely will never need to use the package again.<\/p>\n<p>A quick eyeball comparison between the Tumblr list and that matrix indicates the colors are off. That could be for many reasons starting from the way they were encoded in the PNG by whatever programming language was used to train the neural net and make the image (likely Python) to Tumblr degrading it to something on my end. You&#8217;ll see that the colors are close enough for humans that it&#8217;s likely close enough.<\/p>\n<p>There, I&#8217;ve got a B+ with about a total of 60s of work! Plenty of time left to try shooting for an A!<\/p>\n<h3>Attempt #2 (FAIL)<\/h3>\n<p>We&#8217;ve got the PNG from the Tumblr post and the <code>tesseract<\/code> package in R. Perhaps this will be super-quick, too:<\/p>\n<pre id=\"aco-pal-03\"><code class=\"language-r\">pal_img_fil &lt;- &quot;tumblr_inline_opgsh0UI6N1rl9zu7_400.png&quot;\r\n\r\npal_ocr &lt;- ocr(pal_img_fil)\r\nstri_split_lines(pal_ocr)\r\n## [[1]]\r\n##  [1] &quot;-ClaniicFug112113 84&quot;      &quot;-Snowhnn.k 201 199165&quot;    \r\n##  [3] &quot;- Cmbabcl 97 93 68&quot;        &quot;-Bun\ufb02uw 190 174 155&quot;      \r\n##  [5] &quot;-an:hing Blue 121 114125&quot;  &quot;Bank Bun 221 196199&quot;      \r\n##  [7] &quot;- Caring Tan 171 166170&quot;   &quot;-Smrguun 233191 141&quot;      \r\n##  [9] &quot;-Sink 176 131; 110&quot;        &quot;Slummy Beige 216 200135&quot;  \r\n## [11] &quot;- Durkwumi 61 63 66&quot;       &quot;Flow\/\u00a31178 1114 196&quot;      \r\n## [13] &quot;- Sand Dan 2111 172143&quot;    &quot;- Grade 136: 41; 94 x3&quot;   \r\n## [15] &quot;-Ligh[OfBlasll75150147&quot;    &quot;-Grass 13m 176 99108&quot;     \r\n## [17] &quot;Sindis Poop 204 205 194&quot;   &quot;Dupe 219 2119179&quot;         \r\n## [19] &quot;-&#039;n:sling156101 106&quot;       &quot;-SloncrElu13152165 159&quot;   \r\n## [21] &quot;- Buxblc Simp 226 1x1 132&quot; &quot;-Sl.mky 13m197162171&quot;     \r\n## [23] &quot;-&#039;J\\\\milyl90164116&quot;        &quot;&quot;                         \r\n## [25] &quot;&quot;<\/code><\/pre>\n<p>Ugh.<\/p>\n<p>Perhaps if we crop out the colors:<\/p>\n<pre id=\"aco-pal-04\"><code class=\"language-r\">image_read(pal_img_fil) %&gt;%\r\n  image_crop(&quot;+57&quot;) %&gt;%\r\n  ocr() %&gt;%\r\n  stri_split_lines()\r\n## [[1]]\r\n##  [1] &quot;Clan\ufb01c Fug112113 84&quot;       &quot;Snowhunk 201 199 165&quot;     \r\n##  [3] &quot;Cmbabcl 97 93 as&quot;          &quot;Bun\ufb02uwl90174155&quot;          \r\n##  [5] &quot;Kunming Blue 121 114 125&quot;  &quot;Bank Bun 221196199&quot;       \r\n##  [7] &quot;Caring Tan 171 ms 170&quot;     &quot;Slarguun 233 191 141&quot;     \r\n##  [9] &quot;Sinkl76135110&quot;             &quot;&quot;                         \r\n## [11] &quot;SIIImmy Beige 216 200 135&quot; &quot;Durkwuud e1 63 66&quot;        \r\n## [13] &quot;Flower 175 154 196&quot;        &quot;&quot;                         \r\n## [15] &quot;Sand Dan 201 172 143&quot;      &quot;Grade 1m AB 94: 53&quot;       \r\n## [17] &quot;&quot;                          &quot;Light 0mm 175 150 147&quot;    \r\n## [19] &quot;Grass Ba! 17a 99 ms&quot;       &quot;sxndis Poop 204 205 194&quot;  \r\n## [21] &quot;Dupe 219 209 179&quot;          &quot;&quot;                         \r\n## [23] &quot;Tesling 156 101 106&quot;       &quot;SloncrEluc 152 165 159&quot;   \r\n## [25] &quot;Buxblc Simp 226 131 132&quot;   &quot;Sumky Bean 197 162 171&quot;   \r\n## [27] &quot;1\\\\m\ufb02y 190 164 11a&quot;        &quot;&quot;                         \r\n## [29] &quot;&quot;<\/code><\/pre>\n<p>Ugh.<\/p>\n<p>I&#8217;m woefully unfamiliar with how to use the plethora of tesseract options to try to get better performance and this is taking too much time for a toy post, so we&#8217;ll call this attempt a failure :-(<\/p>\n<h3>Attempt #3 (A-!!)<\/h3>\n<p>I&#8217;m going to go outside of R again to <a href=\"http:\/\/www.newocr.com\/\">New OCR<\/a> and upload the Tumblr palette there and crop out the colors (it lets you do that in-browser). NOTE: Never use any free site for OCR&#8217;ing sensitive data as most are run by content thieves.<\/p>\n<p><em>Now<\/em> we&#8217;re talkin&#8217;:<\/p>\n<pre id=\"aco-pal-05\"><code class=\"language-r\">ocr_cols &lt;- &quot;Clardic Fug 112 113 84\r\nSnowbonk 201 199 165\r\nCatbabel 97 93 68\r\nBunfiow 190 174 155\r\nRonching Blue 121 114 125\r\nBank Butt 221 196 199\r\nCaring Tan 171 166 170\r\nStargoon 233 191 141\r\nSink 176 138 110\r\nStummy Beige 216 200 185\r\nDorkwood 61 63 66\r\nFlower 178 184 196\r\nSand Dan 201 172 143\r\nGrade Bat 48 94 83\r\nLight Of Blast 175 150 147\r\nGrass Bat 176 99 108\r\nSindis Poop 204 205 194\r\nDope 219 209 179\r\nTesting 156 101 106\r\nStoncr Blue 152 165 159\r\nBurblc Simp 226 181 132\r\nStanky Bean 197 162 171\r\nThrdly 190 164 116&quot;<\/code><\/pre>\n<p>We can get that into a more useful form pretty quickly:<\/p>\n<pre id=\"aco-pal-06\"><code class=\"language-r\">stri_match_all_regex(ocr_cols, &quot;([[:alpha:] ]+) ([[:digit:]]+) ([[:digit:]]+) ([[:digit:]]+)&quot;) %&gt;%\r\n  print() %&gt;%\r\n  .[[1]] -&gt; col_mat\r\n## [[1]]\r\n##       [,1]                         [,2]             [,3]  [,4]  [,5] \r\n##  [1,] &quot;Clardic Fug 112 113 84&quot;     &quot;Clardic Fug&quot;    &quot;112&quot; &quot;113&quot; &quot;84&quot; \r\n##  [2,] &quot;Snowbonk 201 199 165&quot;       &quot;Snowbonk&quot;       &quot;201&quot; &quot;199&quot; &quot;165&quot;\r\n##  [3,] &quot;Catbabel 97 93 68&quot;          &quot;Catbabel&quot;       &quot;97&quot;  &quot;93&quot;  &quot;68&quot; \r\n##  [4,] &quot;Bunfiow 190 174 155&quot;        &quot;Bunfiow&quot;        &quot;190&quot; &quot;174&quot; &quot;155&quot;\r\n##  [5,] &quot;Ronching Blue 121 114 125&quot;  &quot;Ronching Blue&quot;  &quot;121&quot; &quot;114&quot; &quot;125&quot;\r\n##  [6,] &quot;Bank Butt 221 196 199&quot;      &quot;Bank Butt&quot;      &quot;221&quot; &quot;196&quot; &quot;199&quot;\r\n##  [7,] &quot;Caring Tan 171 166 170&quot;     &quot;Caring Tan&quot;     &quot;171&quot; &quot;166&quot; &quot;170&quot;\r\n##  [8,] &quot;Stargoon 233 191 141&quot;       &quot;Stargoon&quot;       &quot;233&quot; &quot;191&quot; &quot;141&quot;\r\n##  [9,] &quot;Sink 176 138 110&quot;           &quot;Sink&quot;           &quot;176&quot; &quot;138&quot; &quot;110&quot;\r\n## [10,] &quot;Stummy Beige 216 200 185&quot;   &quot;Stummy Beige&quot;   &quot;216&quot; &quot;200&quot; &quot;185&quot;\r\n## [11,] &quot;Dorkwood 61 63 66&quot;          &quot;Dorkwood&quot;       &quot;61&quot;  &quot;63&quot;  &quot;66&quot; \r\n## [12,] &quot;Flower 178 184 196&quot;         &quot;Flower&quot;         &quot;178&quot; &quot;184&quot; &quot;196&quot;\r\n## [13,] &quot;Sand Dan 201 172 143&quot;       &quot;Sand Dan&quot;       &quot;201&quot; &quot;172&quot; &quot;143&quot;\r\n## [14,] &quot;Grade Bat 48 94 83&quot;         &quot;Grade Bat&quot;      &quot;48&quot;  &quot;94&quot;  &quot;83&quot; \r\n## [15,] &quot;Light Of Blast 175 150 147&quot; &quot;Light Of Blast&quot; &quot;175&quot; &quot;150&quot; &quot;147&quot;\r\n## [16,] &quot;Grass Bat 176 99 108&quot;       &quot;Grass Bat&quot;      &quot;176&quot; &quot;99&quot;  &quot;108&quot;\r\n## [17,] &quot;Sindis Poop 204 205 194&quot;    &quot;Sindis Poop&quot;    &quot;204&quot; &quot;205&quot; &quot;194&quot;\r\n## [18,] &quot;Dope 219 209 179&quot;           &quot;Dope&quot;           &quot;219&quot; &quot;209&quot; &quot;179&quot;\r\n## [19,] &quot;Testing 156 101 106&quot;        &quot;Testing&quot;        &quot;156&quot; &quot;101&quot; &quot;106&quot;\r\n## [20,] &quot;Stoncr Blue 152 165 159&quot;    &quot;Stoncr Blue&quot;    &quot;152&quot; &quot;165&quot; &quot;159&quot;\r\n## [21,] &quot;Burblc Simp 226 181 132&quot;    &quot;Burblc Simp&quot;    &quot;226&quot; &quot;181&quot; &quot;132&quot;\r\n## [22,] &quot;Stanky Bean 197 162 171&quot;    &quot;Stanky Bean&quot;    &quot;197&quot; &quot;162&quot; &quot;171&quot;\r\n## [23,] &quot;Thrdly 190 164 116&quot;         &quot;Thrdly&quot;         &quot;190&quot; &quot;164&quot; &quot;116&quot;<\/code><\/pre>\n<p>The <code>print()<\/code> is in the pipe as I can never remember where each <code>stringi<\/code> functions stick lists but usually guess right, plus I wanted to check the output.<\/p>\n<p>Making those into colors is super-simple:<\/p>\n<pre id=\"aco-pal-07\"><code class=\"language-r\">y &lt;- apply(col_mat[,3:5], 2, as.numeric)\r\n\r\nocr_cols &lt;- rgb(y[,1], y[,2], y[,3], names=col_mat[,2], maxColorValue = 255)<\/code><\/pre>\n<p>If we look at Attempt #1 and Attempt #2 together:<\/p>\n<pre id=\"aco-pal-08\"><code class=\"language-r\">ocr_cols\r\n##    Clardic Fug       Snowbonk       Catbabel        Bunfiow  Ronching Blue \r\n##      &quot;#707154&quot;      &quot;#C9C7A5&quot;      &quot;#615D44&quot;      &quot;#BEAE9B&quot;      &quot;#79727D&quot; \r\n##      Bank Butt     Caring Tan       Stargoon           Sink   Stummy Beige \r\n##      &quot;#DDC4C7&quot;      &quot;#ABA6AA&quot;      &quot;#E9BF8D&quot;      &quot;#B08A6E&quot;      &quot;#D8C8B9&quot; \r\n##       Dorkwood         Flower       Sand Dan      Grade Bat Light Of Blast \r\n##      &quot;#3D3F42&quot;      &quot;#B2B8C4&quot;      &quot;#C9AC8F&quot;      &quot;#305E53&quot;      &quot;#AF9693&quot; \r\n##      Grass Bat    Sindis Poop           Dope        Testing    Stoncr Blue \r\n##      &quot;#B0636C&quot;      &quot;#CCCDC2&quot;      &quot;#DBD1B3&quot;      &quot;#9C656A&quot;      &quot;#98A59F&quot; \r\n##    Burblc Simp    Stanky Bean         Thrdly \r\n##      &quot;#E2B584&quot;      &quot;#C5A2AB&quot;      &quot;#BEA474&quot;\r\n\r\naco_hex\r\n##  [1] &quot;#707055&quot; &quot;#CBC6A6&quot; &quot;#615C49&quot; &quot;#BFAE9C&quot; &quot;#78727C&quot; &quot;#DDC4C7&quot; &quot;#A9A7AB&quot;\r\n##  [8] &quot;#E9BF8F&quot; &quot;#B18A6D&quot; &quot;#D8C8B9&quot; &quot;#3E3F43&quot; &quot;#B2B8C4&quot; &quot;#C7AC92&quot; &quot;#305E53&quot;\r\n## [15] &quot;#AC9891&quot; &quot;#B1646B&quot; &quot;#CBCDC0&quot; &quot;#DBD2B3&quot; &quot;#A2626A&quot; &quot;#98A59E&quot; &quot;#E8B187&quot;\r\n## [22] &quot;#C5A1AB&quot; &quot;#BFA17C&quot;<\/code><\/pre>\n<p>we can see they&#8217;re <em>really<\/em> close to each other, and I doubt all but the most egregiously picky color snobs can tell the difference visually, too:<\/p>\n<pre id=\"aco-pal-09\"><code class=\"language-r\">par(mfrow=c(1,2))\r\nscales::show_col(ocr_cols)\r\nscales::show_col(aco_hex)\r\npar(mfrow=c(1,1))<\/code><\/pre>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"5974\" data-permalink=\"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/pals2-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&amp;ssl=1\" data-orig-size=\"1920,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=\"pals2-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=510%2C255&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?resize=510%2C255&#038;ssl=1\" alt=\"\" width=\"510\" height=\"255\" class=\"aligncenter size-full wp-image-5974\" \/><\/a><\/p>\n<p>(OK, <code>#3D3F43<\/code> is definitely hitting my OCD as being annoyingly different than <code>#3D3F42<\/code> on my MacBook Pro so count me in as a color snob.)<\/p>\n<p>Here&#8217;s the final palette:<\/p>\n<pre id=\"aco-pal-10\"><code class=\"language-r\">structure(c(&quot;#707154&quot;, &quot;#C9C7A5&quot;, &quot;#615D44&quot;, &quot;#BEAE9B&quot;, &quot;#79727D&quot;, \r\n&quot;#DDC4C7&quot;, &quot;#ABA6AA&quot;, &quot;#E9BF8D&quot;, &quot;#B08A6E&quot;, &quot;#D8C8B9&quot;, &quot;#3D3F42&quot;, \r\n&quot;#B2B8C4&quot;, &quot;#C9AC8F&quot;, &quot;#305E53&quot;, &quot;#AF9693&quot;, &quot;#B0636C&quot;, &quot;#CCCDC2&quot;, \r\n&quot;#DBD1B3&quot;, &quot;#9C656A&quot;, &quot;#98A59F&quot;, &quot;#E2B584&quot;, &quot;#C5A2AB&quot;, &quot;#BEA474&quot;\r\n), .Names = c(&quot;Clardic Fug&quot;, &quot;Snowbonk&quot;, &quot;Catbabel&quot;, &quot;Bunfiow&quot;, \r\n&quot;Ronching Blue&quot;, &quot;Bank Butt&quot;, &quot;Caring Tan&quot;, &quot;Stargoon&quot;, &quot;Sink&quot;, \r\n&quot;Stummy Beige&quot;, &quot;Dorkwood&quot;, &quot;Flower&quot;, &quot;Sand Dan&quot;, &quot;Grade Bat&quot;, \r\n&quot;Light Of Blast&quot;, &quot;Grass Bat&quot;, &quot;Sindis Poop&quot;, &quot;Dope&quot;, &quot;Testing&quot;, \r\n&quot;Stoncr Blue&quot;, &quot;Burblc Simp&quot;, &quot;Stanky Bean&quot;, &quot;Thrdly&quot;))<\/code><\/pre>\n<p>This third attempt took ~5 minutes vs 60s.<\/p>\n<h3>FIN<\/h3>\n<p>Why &#8220;A-&#8220;? Well, I didn&#8217;t completely verify the colors and values matched 100% in the final submission. They are likely the same, but the best way to get something corrected by others it to put it on the internet, so <em>there it is<\/em> :-)<\/p>\n<p>I&#8217;d be a better human and coder if I took the time to learn <code>tesseract<\/code> more, but I don&#8217;t have much need for OCR&#8217;ing text. It is likely worth the time to brush up on <code>tesseract<\/code> after you read this post.<\/p>\n<p><em>Don&#8217;t use this palette<\/em>! I created it mostly to beat Karthik to making the palette (I have no idea if I succeeded), to also show that you should not forego your base R roots (I could have let that be subliminal but I wasn&#8217;t trying to socially engineer you in this post) and to bring up the speed\/reproducibility topic. I see no issues with manually doing tasks (like uploading an image to a web site) in certain circumstances, but it&#8217;d be an interesting topic of debate to see just what &#8220;rules&#8221; folks use to determine how much effort one should put into 100% programmatic reproducibility.<\/p>\n<p>You can find the ACO file and an earlier, alternate attempt at making the palette in <a href=\"https:\/\/gist.github.com\/hrbrmstr\/1082a9b28120a22f6a7cf9e8ecae2eef\">this gist<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>UPDATE: I was reminded that I made a more generic version of adobecolor to handle many types of swatch files which you can find on github. Many of my posts seem to begin with a link to a tweet, and this one falls into that pattern: And @_inundata is already working on a #rstats palette. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5974,"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-5965","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>A Very Palette-able Post - 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\/05\/21\/a-very-pallete-able-post\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Very Palette-able Post - rud.is\" \/>\n<meta property=\"og:description\" content=\"UPDATE: I was reminded that I made a more generic version of adobecolor to handle many types of swatch files which you can find on github. Many of my posts seem to begin with a link to a tweet, and this one falls into that pattern: And @_inundata is already working on a #rstats palette. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-21T14:32:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-10T12:54:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"A Very Palette-able Post\",\"datePublished\":\"2017-05-21T14:32:21+00:00\",\"dateModified\":\"2018-03-10T12:54:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/\"},\"wordCount\":919,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/pals2-1.png?fit=1920%2C960&ssl=1\",\"keywords\":[\"post\"],\"articleSection\":[\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/\",\"name\":\"A Very Palette-able Post - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/pals2-1.png?fit=1920%2C960&ssl=1\",\"datePublished\":\"2017-05-21T14:32:21+00:00\",\"dateModified\":\"2018-03-10T12:54:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/pals2-1.png?fit=1920%2C960&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/05\\\/pals2-1.png?fit=1920%2C960&ssl=1\",\"width\":1920,\"height\":960},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/05\\\/21\\\/a-very-pallete-able-post\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Very Palette-able Post\"}]},{\"@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":"A Very Palette-able Post - 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\/05\/21\/a-very-pallete-able-post\/","og_locale":"en_US","og_type":"article","og_title":"A Very Palette-able Post - rud.is","og_description":"UPDATE: I was reminded that I made a more generic version of adobecolor to handle many types of swatch files which you can find on github. Many of my posts seem to begin with a link to a tweet, and this one falls into that pattern: And @_inundata is already working on a #rstats palette. [&hellip;]","og_url":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/","og_site_name":"rud.is","article_published_time":"2017-05-21T14:32:21+00:00","article_modified_time":"2018-03-10T12:54:27+00:00","og_image":[{"width":1920,"height":960,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1","type":"image\/png"}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"A Very Palette-able Post","datePublished":"2017-05-21T14:32:21+00:00","dateModified":"2018-03-10T12:54:27+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/"},"wordCount":919,"commentCount":2,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1","keywords":["post"],"articleSection":["R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/","url":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/","name":"A Very Palette-able Post - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1","datePublished":"2017-05-21T14:32:21+00:00","dateModified":"2018-03-10T12:54:27+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/05\/pals2-1.png?fit=1920%2C960&ssl=1","width":1920,"height":960},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2017\/05\/21\/a-very-pallete-able-post\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"A Very Palette-able Post"}]},{"@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\/05\/pals2-1.png?fit=1920%2C960&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-1yd","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4417,"url":"https:\/\/rud.is\/b\/2016\/06\/07\/new-viridis-colorbrewer-palettes-for-ipv4-heatmap\/","url_meta":{"origin":5965,"position":0},"title":"New viridis &#038; colorbrewer palettes for ipv4-heatmap","author":"hrbrmstr","date":"2016-06-07","format":false,"excerpt":"It's no seekrit that I :heart: Hilbert curve heatmaps of IPv4 space. Real-world IPv4 maps (i.e. the ones that drop dots on the Earth) have little utility, but with Hilbert curves maps of IPv4 space many different topologies can be superimposed (from ASNs to\u2014if need be\u2014geographic locations). Plus, there's more\u2026","rel":"","context":"In &quot;data driven security&quot;","block_context":{"text":"data driven security","link":"https:\/\/rud.is\/b\/category\/data-driven-security\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/06\/rdbu-inverted.png?fit=512%2C512&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":7924,"url":"https:\/\/rud.is\/b\/2018\/01\/18\/bitcoin-world-map-bubbles\/","url_meta":{"origin":5965,"position":1},"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":5965,"position":2},"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":7713,"url":"https:\/\/rud.is\/b\/2017\/12\/21\/new-package-swatches-is-now-on-cran\/","url_meta":{"origin":5965,"position":3},"title":"New Package swatches  is Now on CRAN","author":"hrbrmstr","date":"2017-12-21","format":false,"excerpt":"It's been a long time coming, but swatches? is now on CRAN. What is \"swatches\"? 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.\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\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/plot_zoom_png-1.png?fit=1200%2C738&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":13449,"url":"https:\/\/rud.is\/b\/2022\/05\/17\/using-leonardo-svg-palettes-in-r\/","url_meta":{"origin":5965,"position":4},"title":"Using Leonardo SVG Palettes in R","author":"hrbrmstr","date":"2022-05-17","format":false,"excerpt":"In today's newsletter Leonardo, an open source project and free online too from Adobe that lets you make great and accessible color palettes for use in UX\/UI design and data visualizations! You can read the one newsletter section to get a feel for Leonardo, then go play with it 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":13927,"url":"https:\/\/rud.is\/b\/2023\/04\/10\/introducing-webrider-the-webr-ide-ish-repl-you-didnt-know-you-needed\/","url_meta":{"origin":5965,"position":5},"title":"Introducing WebRIDEr: The WebR &#8220;IDE&#8221;-ish REPL You Didn&#8217;t Know You Needed","author":"hrbrmstr","date":"2023-04-10","format":false,"excerpt":"The official example WebR REPL is definitely cool and useful to get the feel for WebR. But, it is far from an ideal way to deal with it interactively, even as just a REPL. As y'all know, I've been conducing numerous experiments with WebR and various web technologies. I started\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"ide-like view","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/04\/preview.png?fit=1200%2C754&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/04\/preview.png?fit=1200%2C754&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/04\/preview.png?fit=1200%2C754&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/04\/preview.png?fit=1200%2C754&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/04\/preview.png?fit=1200%2C754&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/5965","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=5965"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/5965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/5974"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=5965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=5965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=5965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}