

{"id":3585,"date":"2015-08-04T17:28:22","date_gmt":"2015-08-04T22:28:22","guid":{"rendered":"http:\/\/rud.is\/b\/?p=3585"},"modified":"2018-03-07T16:43:48","modified_gmt":"2018-03-07T21:43:48","slug":"achieve-charting-zen-with-taucharts","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","title":{"rendered":"Achieve Charting Zen With TauCharts"},"content":{"rendered":"<p>There was some chatter on the twitters this week about a relatively new D3-based charting library called [TauCharts](http:\/\/taucharts.com\/) (also @taucharts). The API looked pretty clean and robust, so I started working on an htmlwidget for it and was quickly joined by the Widget Master himself, @timelyportfolio. <\/p>\n<p>TauCharts definitely has a &#8220;grammar of graphics&#8221; feel about it and the default aesthetics are super-nifty While the developers are actively adding new features and &#8220;geoms&#8221;, the core points (think scatterplot), lines and bars (including horizontal bars!) geoms are quite robust and definitely ready for your dashboards.<\/p>\n<p>Between the two of us, we have a _substantial_ part of the [charting library API](http:\/\/api.taucharts.com\/) covered. I think the only major thing left unimplemented is composite charts (i.e. lines + bars + points on the same chart) and some minor tweaks around the edges.<\/p>\n<p>While you can find it on [github](http:\/\/github.com\/hrbrmstr\/taucharts) and do the normal:<\/p>\n<pre lang=\"rsplus\">devtools::install_github(\"hrbrmstr\/taucharts\")<\/pre>\n<p>or, even use the official initial release version:<\/p>\n<pre lang=\"rsplus\">devtools::install_github(\"hrbrmstr\/taucharts@v0.1.0\")<\/pre>\n<p>I&#8217;ll use the `dev` version:<\/p>\n<pre lang=\"rsplus\">devtools::install_github(\"hrbrmstr\/taucharts@dev\"<\/pre>\n<p>for the example below, mostly since it includes the data set I want to use to mimic the current, featured example on the [TauCharts homepage](http:\/\/taucharts.com\/) and also has full documentation with examples.<\/p>\n<p>Here&#8217;s all it takes to make a <b>faceted<\/b> scatterplot with:<\/p>\n<p>&#8211; interactive tooltips<br \/>\n&#8211; interactive legend<br \/>\n&#8211; custom-selectable trendline annotation:<\/p>\n<pre lang=\"rsplus\">devtools::install_github(\"hrbrmstr\/taucharts@dev\")\r\n\r\nlibrary(taucharts)\r\n\r\ndata(cars_data)\r\n\r\ntauchart(cars_data) %>% \r\n  tau_point(\"milespergallon\", c(\"class\", \"price\"), color=\"class\") %>% \r\n  tau_guide_padding(bottom=300) %>% \r\n  tau_legend() %>% \r\n  tau_trendline() %>% \r\n  tau_tooltip(c(\"vehicle\", \"year\", \"class\", \"price\", \"milespergallon\"))<\/pre>\n<p><center><br \/>\n<b>Hybrid cars fuel economy by price and class<\/b><br \/><i>It seems expensive cars are less efficient.<\/i><br \/>\n<iframe loading=\"lazy\" style=\"max-width=100%\" \n        src=\"\/b\/iframes\/taucharts\/tauchart01.html\" \n        sandbox=\"allow-same-origin allow-scripts allow-forms allow-pointer-lock allow-popups allow-same-origin allow-top-navigation\"\n        width=\"750px\" \n        height=\"900px\" \n        scrolling=\"no\" \n        seamless\n        frameBorder=\"0\"><\/iframe><br \/>\n<\/center><\/p>\n<p>There are _tons_ more examples in the [TauCharts RPub](http:\/\/rpubs.com\/hrbrmstr\/taucharts) (and soon-to-be vignette) and @timelyportfolio will be featuring it in his weekly [widget update](http:\/\/www.buildingwidgets.com\/).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There was some chatter on the twitters this week about a relatively new D3-based charting library called [TauCharts](http:\/\/taucharts.com\/) (also @taucharts). The API looked pretty clean and robust, so I started working on an htmlwidget for it and was quickly joined by the Widget Master himself, @timelyportfolio. TauCharts definitely has a &#8220;grammar of graphics&#8221; feel about [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"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":[24,666,678,673,674,15,91],"tags":[810],"class_list":["post-3585","post","type-post","status-publish","format-standard","hentry","category-charts-graphs","category-d3","category-data-visualization","category-datavis-2","category-dataviz","category-javascript","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>Achieve Charting Zen With TauCharts - 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\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Achieve Charting Zen With TauCharts - rud.is\" \/>\n<meta property=\"og:description\" content=\"There was some chatter on the twitters this week about a relatively new D3-based charting library called [TauCharts](http:\/\/taucharts.com\/) (also @taucharts). The API looked pretty clean and robust, so I started working on an htmlwidget for it and was quickly joined by the Widget Master himself, @timelyportfolio. TauCharts definitely has a &#8220;grammar of graphics&#8221; feel about [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2015-08-04T22:28:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-07T21:43:48+00:00\" \/>\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\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"Achieve Charting Zen With TauCharts\",\"datePublished\":\"2015-08-04T22:28:22+00:00\",\"dateModified\":\"2018-03-07T21:43:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/\"},\"wordCount\":282,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"keywords\":[\"post\"],\"articleSection\":[\"Charts &amp; Graphs\",\"d3\",\"Data Visualization\",\"DataVis\",\"DataViz\",\"Javascript\",\"R\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/\",\"name\":\"Achieve Charting Zen With TauCharts - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"datePublished\":\"2015-08-04T22:28:22+00:00\",\"dateModified\":\"2018-03-07T21:43:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2015\\\/08\\\/04\\\/achieve-charting-zen-with-taucharts\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Achieve Charting Zen With TauCharts\"}]},{\"@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":"Achieve Charting Zen With TauCharts - 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\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","og_locale":"en_US","og_type":"article","og_title":"Achieve Charting Zen With TauCharts - rud.is","og_description":"There was some chatter on the twitters this week about a relatively new D3-based charting library called [TauCharts](http:\/\/taucharts.com\/) (also @taucharts). The API looked pretty clean and robust, so I started working on an htmlwidget for it and was quickly joined by the Widget Master himself, @timelyportfolio. TauCharts definitely has a &#8220;grammar of graphics&#8221; feel about [&hellip;]","og_url":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","og_site_name":"rud.is","article_published_time":"2015-08-04T22:28:22+00:00","article_modified_time":"2018-03-07T21:43:48+00:00","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\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"Achieve Charting Zen With TauCharts","datePublished":"2015-08-04T22:28:22+00:00","dateModified":"2018-03-07T21:43:48+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/"},"wordCount":282,"commentCount":3,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"keywords":["post"],"articleSection":["Charts &amp; Graphs","d3","Data Visualization","DataVis","DataViz","Javascript","R"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","url":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/","name":"Achieve Charting Zen With TauCharts - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"datePublished":"2015-08-04T22:28:22+00:00","dateModified":"2018-03-07T21:43:48+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2015\/08\/04\/achieve-charting-zen-with-taucharts\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"Achieve Charting Zen With TauCharts"}]},{"@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":"","jetpack_shortlink":"https:\/\/wp.me\/p23idr-VP","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4061,"url":"https:\/\/rud.is\/b\/2016\/03\/10\/some-light-image-processing-creation-with-r\/","url_meta":{"origin":3585,"position":0},"title":"Some Light Image Processing &#038; Creation With R","author":"hrbrmstr","date":"2016-03-10","format":false,"excerpt":">UPDATE: I rejiggered the function to actually now, y'know, do what it says it should do :-) A friend, we'll call him _Alen_ put a call out for some function that could take an image and produce a per-row \"histogram\" along the edge for the number of filled-in points. That\u2026","rel":"","context":"In &quot;d3&quot;","block_context":{"text":"d3","link":"https:\/\/rud.is\/b\/category\/d3\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/hist1.png?fit=900%2C500&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/hist1.png?fit=900%2C500&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/hist1.png?fit=900%2C500&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/03\/hist1.png?fit=900%2C500&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4285,"url":"https:\/\/rud.is\/b\/2016\/04\/12\/beating-lollipops-into-dumbbells\/","url_meta":{"origin":3585,"position":1},"title":"Beating lollipops into dumbbells","author":"hrbrmstr","date":"2016-04-12","format":false,"excerpt":"Shortly after I added lollipop charts to ggalt I had a few requests for a dumbbell geom. It wasn't difficult to do modify the underlying lollipop Geoms to make a geom_dumbbell(). Here it is in action: library(ggplot2) library(ggalt) # devtools::install_github(\"hrbrmstr\/ggalt\") library(dplyr) # from: https:\/\/plot.ly\/r\/dumbbell-plots\/ URL","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":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/Fullscreen_4_12_16__8_38_PM.png?fit=1200%2C1046&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/Fullscreen_4_12_16__8_38_PM.png?fit=1200%2C1046&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/Fullscreen_4_12_16__8_38_PM.png?fit=1200%2C1046&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/Fullscreen_4_12_16__8_38_PM.png?fit=1200%2C1046&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2016\/04\/Fullscreen_4_12_16__8_38_PM.png?fit=1200%2C1046&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3665,"url":"https:\/\/rud.is\/b\/2015\/09\/08\/roll-your-own-stats-and-geoms-in-ggplot2-part-1-splines\/","url_meta":{"origin":3585,"position":2},"title":"Roll Your Own Stats and Geoms in ggplot2 (Part 1: Splines!)","author":"hrbrmstr","date":"2015-09-08","format":false,"excerpt":"A huge change is coming to ggplot2 and you can get a preview of it over at Hadley's github repo. I've been keenly interested in this as I will be fixing, finishing & porting coord_proj to it once it's done. Hadley & Winston have re-built ggplot2 with an entirely new\u2026","rel":"","context":"In &quot;Data Visualization&quot;","block_context":{"text":"Data Visualization","link":"https:\/\/rud.is\/b\/category\/data-visualization\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":11746,"url":"https:\/\/rud.is\/b\/2019\/01\/10\/waffle-geoms-other-miscellaneous-in-development-package-updates\/","url_meta":{"origin":3585,"position":3},"title":"Waffle Geoms &#038; Other Miscellaneous In-Development Package Updates","author":"hrbrmstr","date":"2019-01-10","format":false,"excerpt":"More than just sergeant has been hacked on recently, so here's a run-down of various ? updates: waffle The square pie chart generating waffle? package now contains a nascent geom_waffle() so you can do things like this: library(hrbrthemes) library(waffle) library(tidyverse) tibble( parts = factor(rep(month.abb[1:3], 3), levels=month.abb[1:3]), values = c(10, 20,\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\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2019\/01\/fwg.png?fit=900%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2789,"url":"https:\/\/rud.is\/b\/2013\/11\/26\/preparing-for-the-february-2014-book-launch\/","url_meta":{"origin":3585,"position":4},"title":"Preparing For The February 2014 Book Launch","author":"hrbrmstr","date":"2013-11-26","format":false,"excerpt":"Data Driven Security launches in February 2014. @jayjacobs & I have seen half of the book in PDF form so far and it's almost unbelievable that this journey is almost over. We setup a live Amazon \"sales rank\" tracker over at the book's web site and provided some Python and\u2026","rel":"","context":"In &quot;Data Analysis&quot;","block_context":{"text":"Data Analysis","link":"https:\/\/rud.is\/b\/category\/data-analysis-2\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3028,"url":"https:\/\/rud.is\/b\/2014\/09\/20\/chartingmapping-the-scottish-vote-with-r-rvestdplyrtidyrtopojsonggplot\/","url_meta":{"origin":3585,"position":5},"title":"Charting\/Mapping the Scottish Vote with R (an rvest\/dplyr\/tidyr\/TopoJSON\/ggplot tutorial)","author":"hrbrmstr","date":"2014-09-20","format":false,"excerpt":"The BBC did a pretty good job [live tracking the Scotland secession vote](http:\/\/www.bbc.com\/news\/events\/scotland-decides\/results), but I really didn't like the color scheme they chose and decided to use the final tally site as the basis for another tutorial using the tools from the Hadleyverse and taking advantage of the fact that\u2026","rel":"","context":"In &quot;Charts &amp; Graphs&quot;","block_context":{"text":"Charts &amp; Graphs","link":"https:\/\/rud.is\/b\/category\/charts-graphs\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3585","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=3585"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/3585\/revisions"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=3585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=3585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=3585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}