<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/tol-color-schemes/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://owi.usgs.gov/blog/tolcolors/"> The USGS OWI blog </a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<h2>Introduction</h2>
<p>Choosing colors for a graphic is a bit like taking a trip down the rabbit hole,<br>
that is, it can take much longer than expected and be both fun and frustrating at the same time.<br>
Striking a balance between colors that look good to you and your audience is important.<br>
Keep in mind that <a rel="nofollow" href="https://en.wikipedia.org/wiki/Color_blindness" target="_blank">color blindness</a><br>
affects many individuals throughout the world and it is incumbent on you<br>
to choose a color scheme that works in color-blind vision.<br>
Luckily there are a number of excellent R packages<br>
that address this very issue, such as the<br>
<a rel="nofollow" href="https://cran.r-project.org/package=colorspace" target="_blank">colorspace</a>,<br>
<a rel="nofollow" href="https://cran.r-project.org/package=RColorBrewer" target="_blank">RColorBrewer</a>, and<br>
<a rel="nofollow" href="https://cran.r-project.org/package=viridis" target="_blank">viridis</a> packages.<br>
And because this is R, where diversity is king,<br>
why not offer one more function for creating color blind friendly palettes.</p>
<p>Let me introduce the <code>GetTolColors</code> function in the R-package<br>
<a rel="nofollow" href="https://cran.r-project.org/package=inlmisc" target="_blank">inlmisc</a>.<br>
This function generates a vector of colors from qualitative, diverging,<br>
and sequential color schemes by <a rel="nofollow" href="https://personal.sron.nl/~pault/data/colourschemes.pdf" target="_blank">Paul Tol (2018)</a>.<br>
The original inspiration for developing this function came from<br>
<a rel="nofollow" href="https://tradeblotter.wordpress.com/2013/02/28/the-paul-tol-21-color-salute/" target="_blank">Peter Carl’s blog post</a><br>
describing color schemes from an older issue of Paul Tol’s Technical Note (issue 2.2, released Dec. 2012).<br>
And the qualitative color schemes described in his blog post found their way into the<br>
<code>ptol_pal</code> function in the R-package <a rel="nofollow" href="https://cran.r-project.org/package=ggthemes" target="_blank">ggthemes</a>.<br>
My intent with this document is to exhibit the latest Tol color schemes (issue 3.0, released May 2018) and show<br>
that they are not only visually pleasing but also well thought out.</p>
<p>To get started, install the <strong>inlmisc</strong> package from <a rel="nofollow" href="https://cran.r-project.org/" target="_blank">CRAN</a> using the command:</p>
<pre><code>if (system.file(package = &quot;inlmisc&quot;, lib.loc = .libPaths()) == &quot;&quot;)
  utils::install.packages(&quot;inlmisc&quot;, dependencies = TRUE)
</code></pre>
<p>And if you’re so inclined, read through the function documentation.</p>
<pre><code>utils::help(&quot;GetTolColors&quot;, package = &quot;inlmisc&quot;)
</code></pre>
<p>Like almost every other R function used to create a color palette,<br>
<code>GetTolColors</code> takes as its first argument the number of colors to be in the returned palette (<code>n</code>).<br>
For example, the following command generates a palette of 10 colors using default values for function arguments.</p>
<pre><code>cols &lt;- inlmisc::GetTolColors(n = 10)
print(cols)
</code></pre>
<pre><code>##  [1] &quot;#E8ECFB&quot; &quot;#B997C7&quot; &quot;#824D99&quot; &quot;#4E78C4&quot; &quot;#57A2AC&quot; &quot;#7EB875&quot; &quot;#D0B541&quot;
##  [8] &quot;#E67F33&quot; &quot;#CE2220&quot; &quot;#521A13&quot;
## attr(,&quot;bad&quot;)
## [1] &quot;#666666&quot;
## attr(,&quot;call&quot;)
## GetTolColors(n = 10, scheme = &quot;smooth rainbow&quot;, alpha = NULL, 
##     start = 0, end = 1, bias = 1, reverse = FALSE, blind = NULL, 
##     gray = FALSE)
## attr(,&quot;class&quot;)
## [1] &quot;Tol&quot;       &quot;character&quot;
</code></pre>
<p>Returned from the function is an object of class <code>&quot;Tol&quot;</code> that inherits behavior from the <code>&quot;character&quot;</code> class.<br>
A Tol-class object is comprised of a character vector of <code>n</code> colors and the following attributes:<br>
<code>&quot;names&quot;</code>, the informal names assigned to colors in the palette,<br>
where a value of <code>NULL</code> indicates that no color names were specified for the scheme;<br>
<code>&quot;bad&quot;</code>, the color meant for bad data or data gaps, where a value of <code>NA</code> indicates<br>
that no bad color was specified for the scheme; and<br>
<code>&quot;call&quot;</code>, the unevaluated function call that can be used to reproduce the palette.</p>
<p>A <code>plot</code> method is provided for the Tol class that displays the palette of colors.</p>
<pre><code>plot(cols)
</code></pre>
<p><img src="https://i0.wp.com/owi.usgs.gov/blog/static/tolcolors/plot-1.png?w=456&ssl=1" alt="Display colors in palette." title="Display colors in palette." data-recalc-dims="1"></p>
<p>The main title for the plot will always indicate the <code>n</code> and <code>scheme</code> argument values used to create the palette.<br>
Where <code>scheme</code> is the name of the color scheme, its default value is <code>&quot;smooth rainbow&quot;</code>.<br>
All other arguments are only included in the title if their specified value differs from their default value.<br>
The label positioned below each shaded rectangle gives the informal color name.</p>
<h2>Color Schemes</h2>
<p>Tal (2018) defines 13 color schemes:<br>
7 for qualitative data, 3 for diverging data, and 3 for sequential data (table 1).<br>
The maximum number of colors in a generated palette is dependent on the user selected scheme.<br>
For example, the <code>&quot;discrete rainbow&quot;</code> scheme can have at most 23 colors in its palette (<code>n</code> ≤ 23).<br>
Whereas a continuous (or interpolated) version of the <code>&quot;smooth rainbow&quot;</code> scheme is available that has<br>
no upper limit on values of <code>n</code>.<br>
About half of the schemes include a color meant for bad data.</p>
<table>
<caption><b>Table 1.</b> Suggested data type for color schemes and the characteristics of generated palettes. 
<p>
<p> <span> [<b>Data type</b>: is the type of data being represented, either qualitative, diverging, or sequential. <b>Maximum n</b>: is the maximum number of colors in a generated palette. And the maximum n value when palette colors are designed for gray-scale conversion is enclosed in parentheses. <b>Bad data</b>: whether a color has been provided for bad data. <b>Abbreviations</b>: —, no limit placed on the number of colors in the palette] </span>
<thead>
<tr>
<th> Data type </th>
<th> Color scheme </th>
<th> Maximum n </th>
<th> Bad data </th>
</tr>
</thead>
<tbody>
<tr>
<td> Qualitative </td>
<td> bright </td>
<td> 7 (3) </td>
<td> no </td>
</tr>
<tr>
<td> </td>
<td> vibrant </td>
<td> 7 (4) </td>
<td> no </td>
</tr>
<tr>
<td> </td>
<td> muted </td>
<td> 9 (5) </td>
<td> yes </td>
</tr>
<tr>
<td> </td>
<td> pale </td>
<td> 6 </td>
<td> no </td>
</tr>
<tr>
<td> </td>
<td> dark </td>
<td> 6 </td>
<td> no </td>
</tr>
<tr>
<td> </td>
<td> light </td>
<td> 9 </td>
<td> no </td>
</tr>
<tr>
<td> </td>
<td> ground cover </td>
<td> 14 </td>
<td> no </td>
</tr>
<tr>
<td> Diverging </td>
<td> sunset </td>
<td> — </td>
<td> yes </td>
</tr>
<tr>
<td> </td>
<td> BuRd </td>
<td> — </td>
<td> yes </td>
</tr>
<tr>
<td> </td>
<td> PRGn </td>
<td> — </td>
<td> yes </td>
</tr>
<tr>
<td> Sequential </td>
<td> YlOrBr </td>
<td> — </td>
<td> yes </td>
</tr>
<tr>
<td> </td>
<td> discrete rainbow </td>
<td> 23 </td>
<td> yes </td>
</tr>
<tr>
<td> </td>
<td> smooth rainbow </td>
<td> — </td>
<td> yes </td>
</tr>
</tbody>

<h3>Qualitative</h3>
<p>Qualitative color schemes <code>&quot;bright&quot;</code>, <code>&quot;vibrant&quot;</code>, <code>&quot;muted&quot;</code>, <code>&quot;pale&quot;</code>, <code>&quot;dark&quot;</code>, and <code>&quot;light&quot;</code><br>
are appropriate for representing nominal or categorical data.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(6, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(7, scheme = &quot;bright&quot;))
plot(inlmisc::GetTolColors(7, scheme = &quot;vibrant&quot;))
plot(inlmisc::GetTolColors(9, scheme = &quot;muted&quot;))
plot(inlmisc::GetTolColors(6, scheme = &quot;pale&quot;))
plot(inlmisc::GetTolColors(6, scheme = &quot;dark&quot;))
plot(inlmisc::GetTolColors(9, scheme = &quot;light&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/qualitative-1.png?w=456&ssl=1" alt="Qualitative color schemes" title="Qualitative color schemes" data-recalc-dims="1"></p>
<p>And the <code>&quot;ground cover&quot;</code> scheme is a color-blind safe version of the<br>
<a rel="nofollow" href="http://glcf.umd.edu/data/landcover/data.shtml" target="_blank">AVHRR</a><br>
global land cover classification color scheme (Hansen and others, 1998).</p>
<pre><code>op &lt;- graphics::par(oma = c(1, 0, 0, 0), cex = 0.7)
plot(inlmisc::GetTolColors(14, scheme = &quot;ground cover&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/cover-1.png?w=456&ssl=1" alt="Land cover color scheme" title="Land cover color scheme" data-recalc-dims="1"></p>
<p>Note that schemes <code>&quot;pale&quot;</code>, <code>&quot;dark&quot;</code>, and <code>&quot;ground cover&quot;</code> are intended to be accessed<br>
in their entirety and subset using vector element names.</p>
<h3>Diverging</h3>
<p>Diverging color schemes <code>&quot;sunset&quot;</code>, <code>&quot;BuRd&quot;</code>, and <code>&quot;PRGn&quot;</code> are appropriate for representing<br>
quantitative data with progressions outward from a critical midpoint of the data range.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(6, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors( 11, scheme = &quot;sunset&quot;))
plot(inlmisc::GetTolColors(256, scheme = &quot;sunset&quot;))
plot(inlmisc::GetTolColors(  9, scheme = &quot;BuRd&quot;))
plot(inlmisc::GetTolColors(256, scheme = &quot;BuRd&quot;))
plot(inlmisc::GetTolColors(  9, scheme = &quot;PRGn&quot;))
plot(inlmisc::GetTolColors(256, scheme = &quot;PRGn&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/diverging-1.png?w=456&ssl=1" alt="Diverging color schemes" title="Diverging color schemes" data-recalc-dims="1"></p>
<h3>Sequential</h3>
<p>Sequential schemes <code>&quot;YlOrBr&quot;</code>, <code>&quot;discrete rainbow&quot;</code>, and <code>&quot;smooth rainbow&quot;</code> are appropriate for representing<br>
quantitative data that progress from small to large values.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(5, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(  9, scheme = &quot;YlOrBr&quot;))
plot(inlmisc::GetTolColors(256, scheme = &quot;YlOrBr&quot;))
plot(inlmisc::GetTolColors( 23, scheme = &quot;discrete rainbow&quot;))
plot(inlmisc::GetTolColors( 34, scheme = &quot;smooth rainbow&quot;))
plot(inlmisc::GetTolColors(256, scheme = &quot;smooth rainbow&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/sequential-1.png?w=456&ssl=1" alt="Sequential color schemes" title="Sequential color schemes" data-recalc-dims="1"></p>
<h2>Alpha Transparency</h2>
<p>The transparency (or opacity) of palette colors is specified using the <code>alpha</code> argument.<br>
Values range from 0 (fully transparent) to 1 (fully opaque).</p>
<pre><code>op &lt;- graphics::par(mfrow = c(5, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(34, alpha = 1.0))
plot(inlmisc::GetTolColors(34, alpha = 0.8))
plot(inlmisc::GetTolColors(34, alpha = 0.6))
plot(inlmisc::GetTolColors(34, alpha = 0.4))
plot(inlmisc::GetTolColors(34, alpha = 0.2))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/alpha-1.png?w=456&ssl=1" alt="Adjust alpha transparency of colors." title="Adjust alpha transparency of colors." data-recalc-dims="1"></p>
<h2>Color Levels</h2>
<p>Color levels are used to limit the range of colors in a scheme—applies only to schemes that can be interpolated,<br>
which includes the <code>&quot;sunset&quot;</code>, <code>&quot;BuRd&quot;</code>, <code>&quot;PRGn&quot;</code>, <code>&quot;YlOrBr&quot;</code>, and <code>&quot;smooth rainbow&quot;</code> schemes.<br>
Starting and ending color levels are specified using the <code>start</code> and <code>end</code> arguments, respectively.<br>
Values range from 0 to 1 and represent a fraction of the scheme’s color domain.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(4, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(256, start = 0.0, end = 1.0))
plot(inlmisc::GetTolColors(256, start = 0.0, end = 0.5))
plot(inlmisc::GetTolColors(256, start = 0.5, end = 1.0))
plot(inlmisc::GetTolColors(256, start = 0.3, end = 0.9))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/levels-1.png?w=456&ssl=1" alt="Adjust starting and ending color levels." title="Adjust starting and ending color levels." data-recalc-dims="1"></p>
<h2>Interpolation Bias</h2>
<p>Interpolation bias is specified using the <code>bias</code> argument, where a value of 1 indicates no bias.<br>
Smaller values result in more widely spaced colors at the low end,<br>
and larger values result in more widely spaced colors at the high end.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(7, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(256, bias = 0.4))
plot(inlmisc::GetTolColors(256, bias = 0.6))
plot(inlmisc::GetTolColors(256, bias = 0.8))
plot(inlmisc::GetTolColors(256, bias = 1.0))
plot(inlmisc::GetTolColors(256, bias = 1.2))
plot(inlmisc::GetTolColors(256, bias = 1.4))
plot(inlmisc::GetTolColors(256, bias = 1.6))
graphics::par(op)
</code></pre>
<p><img src="https://i0.wp.com/owi.usgs.gov/blog/static/tolcolors/bias-1.png?w=456&ssl=1" alt="Adjust interpolation bias." title="Adjust interpolation bias." data-recalc-dims="1"></p>
<h2>Reverse Colors</h2>
<p>Reverse the order of colors in a palette by specifying the <code>reverse</code> argument as <code>TRUE</code> .</p>
<pre><code>op &lt;- graphics::par(mfrow = c(2, 1), oma = c(0, 0, 0, 0), cex = 0.7)
plot(inlmisc::GetTolColors(10, reverse = FALSE))
plot(inlmisc::GetTolColors(10, reverse = TRUE))
graphics::par(op)
</code></pre>
<p><img src="https://i0.wp.com/owi.usgs.gov/blog/static/tolcolors/reverse-1.png?w=456&ssl=1" alt="Reverse colors in palette." title="Reverse colors in palette." data-recalc-dims="1"></p>
<h2>Color Blindness</h2>
<p>Different types of color blindness can be simulated using the <code>blind</code> argument:<br>
specify <code>&quot;deutan&quot;</code> for green-blind vision, <code>&quot;protan&quot;</code> for red-blind vision,<br>
<code>&quot;tritan&quot;</code> for green-blue-blind vision, and <code>&quot;monochromacy&quot;</code> for total-color blindness.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(5, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(34, blind = NULL))
plot(inlmisc::GetTolColors(34, blind = &quot;deutan&quot;))
plot(inlmisc::GetTolColors(34, blind = &quot;protan&quot;))
plot(inlmisc::GetTolColors(34, blind = &quot;tritan&quot;))
plot(inlmisc::GetTolColors(34, blind = &quot;monochromacy&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/blind-1.png?w=456&ssl=1" alt="Adjust for color blindness." title="Adjust for color blindness." data-recalc-dims="1"></p>
<p>With the exception of total-color blindness,<br>
the <code>&quot;smooth rainbow&quot;</code> scheme is well suited for the variants of color-vision deficiency.</p>
<h2>Gray-Scale Preparation</h2>
<p>Subset the qualitative schemes <code>&quot;bright&quot;</code>, <code>&quot;vibrant&quot;</code>, and <code>&quot;muted&quot;</code><br>
to work after conversion to gray scale by specifying the <code>gray</code> argument as <code>TRUE</code>.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(6, 1), oma = c(0, 0, 0, 0))
plot(inlmisc::GetTolColors(3, &quot;bright&quot;,  gray = TRUE))
plot(inlmisc::GetTolColors(3, &quot;bright&quot;,  gray = TRUE, blind = &quot;m&quot;))
plot(inlmisc::GetTolColors(4, &quot;vibrant&quot;, gray = TRUE))
plot(inlmisc::GetTolColors(4, &quot;vibrant&quot;, gray = TRUE, blind = &quot;m&quot;))
plot(inlmisc::GetTolColors(5, &quot;muted&quot;,   gray = TRUE))
plot(inlmisc::GetTolColors(5, &quot;muted&quot;,   gray = TRUE, blind = &quot;m&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i0.wp.com/owi.usgs.gov/blog/static/tolcolors/gray-1.png?w=456&ssl=1" alt="Prepare qualitative schemes for gray-scale conversion." title="Prepare qualitative schemes for gray-scale conversion." data-recalc-dims="1"></p>
<p>Note that the sequential scheme <code>&quot;YlOrBr&quot;</code> works well for conversion to gray scale.</p>
<pre><code>op &lt;- graphics::par(mfrow = c(2, 1), oma = c(0, 0, 0, 0), cex = 0.7)
plot(inlmisc::GetTolColors(256, &quot;YlOrBr&quot;))
plot(inlmisc::GetTolColors(256, &quot;YlOrBr&quot;, blind = &quot;monochromacy&quot;))
graphics::par(op)
</code></pre>
<p><img src="https://i2.wp.com/owi.usgs.gov/blog/static/tolcolors/ylorbr-1.png?w=456&ssl=1" alt="Prepare YlOrBr scheme for gray-scale conversion." title="Prepare YlOrBr scheme for gray-scale conversion." data-recalc-dims="1"></p>
<h2>References Cited</h2>
<p>Hansen, M., DeFries, R., Townshend, J.R.G., and Sohlberg, R., 1998,<br>
UMD Global Land Cover Classification, 1 Kilometer, 1.0:<br>
Department of Geography, University of Maryland, College Park, Maryland, 1981-1994.</p>
<p>Tol, Paul, 2018, Colour Schemes: SRON Technical Note,<br>
doc. no. SRON/EPS/TN/09-002, issue 3.0, 17 p.,<br>
accessed August 29, 2018 at <a rel="nofollow" href="https://personal.sron.nl/~pault/data/colourschemes.pdf" target="_blank">https://personal.sron.nl/~pault/data/colourschemes.pdf</a>.</p>
<h2>Reproducibility</h2>
<p>R-session information for content in this document is as follows:</p>
<pre><code>##  setting  value                       
##  version  R version 3.5.1 (2018-07-02)
##  system   x86_64, mingw32             
##  ui       Rgui                        
##  language (EN)                        
##  collate  English_United States.1252  
##  tz       America/Los_Angeles         
##  date     2018-09-12                  
## 
##  package    * version date       source        
##  backports    1.1.2   2017-12-13 CRAN (R 3.5.0)
##  base       * 3.5.1   2018-07-02 local         
##  checkmate    1.8.5   2017-10-24 CRAN (R 3.5.1)
##  compiler     3.5.1   2018-07-02 local         
##  datasets   * 3.5.1   2018-07-02 local         
##  devtools     1.13.6  2018-06-27 CRAN (R 3.5.1)
##  dichromat    2.0-0   2013-01-24 CRAN (R 3.5.0)
##  digest       0.6.16  2018-08-22 CRAN (R 3.5.1)
##  evaluate     0.11    2018-07-17 CRAN (R 3.5.1)
##  graphics   * 3.5.1   2018-07-02 local         
##  grDevices  * 3.5.1   2018-07-02 local         
##  grid         3.5.1   2018-07-02 local         
##  highr        0.7     2018-06-09 CRAN (R 3.5.1)
##  igraph       1.2.2   2018-07-27 CRAN (R 3.5.1)
##  inlmisc      0.4.3   2018-09-10 CRAN (R 3.5.1)
##  knitr        1.20    2018-02-20 CRAN (R 3.5.1)
##  lattice      0.20-35 2017-03-25 CRAN (R 3.5.1)
##  magrittr     1.5     2014-11-22 CRAN (R 3.5.1)
##  memoise      1.1.0   2017-04-21 CRAN (R 3.5.1)
##  methods    * 3.5.1   2018-07-02 local         
##  pkgconfig    2.0.2   2018-08-16 CRAN (R 3.5.1)
##  rgdal        1.3-4   2018-08-03 CRAN (R 3.5.1)
##  rstudioapi   0.7     2017-09-07 CRAN (R 3.5.1)
##  sp           1.3-1   2018-06-05 CRAN (R 3.5.1)
##  stats      * 3.5.1   2018-07-02 local         
##  stringi      1.2.4   2018-07-20 CRAN (R 3.5.1)
##  stringr      1.3.1   2018-05-10 CRAN (R 3.5.1)
##  tools        3.5.1   2018-07-02 local         
##  utils      * 3.5.1   2018-07-02 local         
##  withr        2.1.2   2018-03-15 CRAN (R 3.5.1)
</code></pre>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://owi.usgs.gov/blog/tolcolors/"> The USGS OWI blog </a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/-0kmeV4euwQ" height="1"></a></div></caption></table>