<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/ggplot2-welcome-viridis/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://rtask.thinkr.fr/blog/ggplot2-welcome-viridis/"> (en) The R Task Force</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p><strong>Let’s welcome the viridis palette into the new version of {ggplot2}!</strong></p>
<h2>Viri-what ?</h2>
<p>viridis is <strong>one of the favorite color palettes of one of the member of the team</strong> (<a rel="nofollow" href="https://twitter.com/_ColinFay/status/908436299366961152" target="_blank">guesswho</a>).</p>
<p>The viridis palette was first developed for the python package matplotlib, and has been implemented in R since.</p>
<p>The strengths of this palette are that:</p>
<ul>
<li><strong>plots are beautiful</strong> (which is good enough a reason to use it)</li>
<li>colors are<strong> perfectly perceptually-uniform</strong>, even when printed in black and white (yes, people still print stuffs in 2018…)</li>
<li>colors are <strong>perceived by the most common forms of color blindness </strong>(an important feature)</li>
</ul>
<p>This palette is now the default color scheme for colormap in the matplolib python package. It had been available as a color scale in R with the {viridisLite} package, then as a ggplot2 scale in {viridis}, and is now fully integrated in {ggplot2} with the last release.</p>
<h3>Why viridis? The story behind</h3>
<p>As said in <a rel="nofollow" href="https://www.youtube.com/watch?v=xAoljeRJ3lU" target="_blank">A Better Default Colormap for Matplotlib</a>: “<em>colormap are interfaces between your data and your brain</em>” — which means that <strong>the choices of colors can have a significant effect on the way you make decision</strong>. We won’t go into the details of color theory (there is a lot of literature on that topic, and we are not the best to speak in depth about it), but it’s pretty obvious that <strong>colors influence the way you perceive things</strong>.</p>
<p>For example, in western Europe (and I guess in many countries around the globe), we are culturally conditionned to think of a red sign as an alert. Green on the other hand tends to indicate something sage.<strong> If today I had to design a color scheme for error / warning / success, I would undoubtly go for a red / orange / green solution</strong>. I’m not the only one, and the first example that comes to my mind is the {shinyalert} package, which has this exact model of colors. This seems simple (and it is), and there is a lot of articles and books about this paradigm applied to marketing and selling (I’ll let you Google-scholar that). For example, here is an “emotion color wheel” called the Plutchik’s wheel of emotions, made by the psychologist of the same name:</p>
<p><img sizes="(max-width: 473px) 100vw, 473px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/473px-Plutchik-wheel.svg_.png?w=450&ssl=1" alt="" class="wp-image-563" data-recalc-dims="1"></p>
<p><em>NB: we do not share / endorse this simplified theory of color, it’s just used there as an example <img alt="😉" src="https://i1.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f609.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"> </em></p>
<p>Let’s take a more serious example, borrowed from the talk I linked just before. In an article (that sounds like a lot of fun) called “<em>Evaluation of artery visualizations for heart disease diagnosis</em>” (<a rel="nofollow" href="https://www.ncbi.nlm.nih.gov/pubmed/22034369" target="_blank">link</a>), <strong>the authors showed how a color palette can play a critical role in diagnosing the presence of an heart disease</strong>. I’ll let you dig into the details if you want to, but long story short, the color palette of the software used to visualise the results has an effect on the capacity of the professional to read and detect a specific condition.</p>
<p>Why are we talking about that? Because as <strong>we want R to be used in production</strong> for visualising data, it’s important to<strong> keep in mind that the color scheme we choose in the end product to use is not without impact</strong>: being simply on readability or in the emotions that is conveyed by the graph.</p>
<h3>Here comes a new challenger</h3>
<p>The standard color palette in a lot of tools is called the Jet palette. You might be familiar with it, as it is implemented in a lot of softwares. This color scheme appears as a good choice to many as we tend to think that this palette makes it easy to distinguish colors (spoiler: it doesn’t).</p>
<p>It looks like this:</p>
<pre><code>library(matlab)</code></pre>
<pre><code>## Attaching package: 'matlab'</code></pre>
<pre><code>## The following object is masked from 'package:stats':
##     reshape</code></pre>
<pre><code>## The following objects are masked from 'package:utils':
##     find, fix</code></pre>
<pre><code>## The following object is masked from 'package:base':
##     sum</code></pre>
<blockquote>
<p>This example is taken from the viridis vignette, put into a function</p>
</blockquote>
<pre><code>with_palette &lt;- function(palette) {
  x &lt;- y &lt;- seq(-8 * pi, 8 * pi, len = 40)
  r &lt;- sqrt(outer(x^2, y^2, &quot;+&quot;))
  filled.contour(cos(r^2) * exp(-r / (2 * pi)),
    axes = FALSE,
    color.palette = palette,
    asp = 1
  )
}
with_palette(jet.colors)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i2.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-2-1.png?w=450&ssl=1" alt="" class="wp-image-531" data-recalc-dims="1"></p>
<p>Let’s just for a second compare to the same data with viridis:</p>
<pre><code>library(viridis)</code></pre>
<pre><code>## Loading required package: viridisLite</code></pre>
<pre><code>with_palette(viridis)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-3-1.png?w=450&ssl=1" alt="" class="wp-image-532" data-recalc-dims="1"></p>
<p>If it seems obvious to you that <strong>the viridis palette is easier to read</strong>… it’s because it is.</p>
<h3>How to implement a new color palette</h3>
<p>With the viridis colormap, the purpose was to have something that is:</p>
<ul>
<li>colorful</li>
<li>pretty</li>
<li>sequential</li>
<li>perceptually uniform</li>
<li>working with black and white</li>
<li>accessible to colorblind</li>
</ul>
<p>So how can one do that? How<strong> can one implement a new palette that answers these demands</strong>? Before getting into the that, let’s analyse how the data go from your computer to your brain.</p>
<p>To be projected, the <strong>data is transformed in RGB notation</strong> (for “Red Green Blue”), either as an hex (<code>#FFCC99</code>), as a percentage (<code>rgb(100%,80%,60%)</code> : 100% red, 80% green, 60% blue) or as a number between 0 and 255 (<code>rgb(255,204,153)</code>). All these notations are the same: the hexadecimal notation being used to represent numbers from 0 to 255 with 16 symbols (from 0-9 &amp; A-F, 16^2 being 256).</p>
<p>In a lot of cases, with color, there are two symbols added to the end of the hex, used for indicating transparency. For example:</p>
<pre><code>viridis(2)</code></pre>
<pre><code>## [1] &quot;#440154FF&quot; &quot;#FDE725FF&quot;</code></pre>
<blockquote>
<p>Note: this is made possible by the fact that a pixel is coded using 32 bits, and a color is represented only 24 out of these 32 bits (3*8), leaving room for another 8 bits.</p>
</blockquote>
<blockquote>
<p>Note bis: you remember that the hex notation allows 256 combinations, which correspond to the number of possible combination for 8 bits (2^8).</p>
</blockquote>
<p>So once you have your lowest color, and your highest, you can use a color palette generator to get a range of color from one to the other. It’s done, for example, by the <code>colorRampPalette</code> function from {grDevices} :</p>
<p><code>colfunc &lt;- colorRampPalette(c(&quot;black&quot;, &quot;white&quot;))</code></p>
<p><code>colfunc(10)<br>
[1] &quot;#000000&quot; &quot;#1C1C1C&quot; &quot;#383838&quot; &quot;#555555&quot; &quot;#717171&quot; &quot;#8D8D8D&quot; &quot;#AAAAAA&quot; &quot;#C6C6C6&quot;<br>
[9] &quot;#E2E2E2&quot; &quot;#FFFFFF&quot;</code></p>
<p>The computation of this range is out of the scope of this article, but you get the idea <img alt="🙂" src="https://i1.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f642.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"> Once we have decided what our palette should look like, <strong>it is then possible to scale your data to fit your palette</strong>: as your palette is going from one point of the color scale to another by passing by a series of intermediary tones, you can give each value of your data a spot in you colormap. The lowest value of your data is mapped to the lowest value of the palette, and the highest to the highest.</p>
<h3>The viridis colormap</h3>
<p>So now that we have the theory, let’s get to the big question: how can we choose a palette that is colorbling friendly? To do that, the solution found by the viridis colormap is to avoid the red and to <strong>go from blue to yellow</strong>,as  these colors can be seen by most of the colorblind.</p>
<p>Let’s use the <code>{dichromat}</code> package to simulate that :</p>
<pre><code>library(dichromat)</code></pre>
<p>Let’s see what the jet palette looks like when you simulate several cases of colorblindness:</p>
<pre><code>library(purrr)
with_palette(
  compose(
    partial(dichromat, type = &quot;deutan&quot;),
    jet.colors
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-6-1.png?w=450&ssl=1" alt="" class="wp-image-533" data-recalc-dims="1"></p>
<pre><code>with_palette(
  compose(
    partial(dichromat, type = &quot;protan&quot;),
    jet.colors
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i2.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-7-1.png?w=450&ssl=1" alt="" class="wp-image-534" data-recalc-dims="1"></p>
<pre><code>with_palette(
  compose(
    partial(dichromat, type = &quot;tritan&quot;),
    jet.colors
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-8-1.png?w=450&ssl=1" alt="" class="wp-image-535" data-recalc-dims="1"></p>
<p>And with viridis:</p>
<pre><code>with_palette(
  compose(
    partial(dichromat, type = &quot;deutan&quot;),
    viridis
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-9-1.png?w=450&ssl=1" alt="" class="wp-image-536" data-recalc-dims="1"></p>
<pre><code>with_palette(
  compose(
    partial(dichromat, type = &quot;protan&quot;),
    viridis
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i2.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-10-1.png?w=450&ssl=1" alt="" class="wp-image-537" data-recalc-dims="1"></p>
<pre><code>with_palette(
  compose(
    partial(dichromat, type = &quot;tritan&quot;),
    viridis
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-11-1.png?w=450&ssl=1" alt="" class="wp-image-538" data-recalc-dims="1"></p>
<p>As you can see, the contrast stays readable in every situation.</p>
<p>Finally, to suit the printing need, the palette had to go from dark to light. And the wider range was from dark blue to bright yellow. Let’s just compare two examples:</p>
<pre><code>with_palette(
  compose(
    colorspace::desaturate,
    jet.colors
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i2.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-12-1.png?w=450&ssl=1" alt="" class="wp-image-539" data-recalc-dims="1"></p>
<pre><code>with_palette(
  compose(
    colorspace::desaturate,
    viridis
    )
)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-13-1.png?w=450&ssl=1" alt="" class="wp-image-540" data-recalc-dims="1"></p>
<h2>Back to R</h2>
<p>So, <strong>enough theory, time to get back to R</strong>.</p>
<h3>viridis as a <img alt="📦" src="https://i2.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f4e6.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"></h3>
<p>Let’s imagine for a minute we are using the old version of ggplot2 (as many still do as we write this lines).</p>
<p>When using this (now old) version of {ggplot2}, we needed the {viridis} package to use this color palette.<code></code></p>
<pre><code><a data-line-number="1"></a><span>library</span>(ggplot2)
<a data-line-number="2"></a><span>library</span>(viridis)
<a data-line-number="3"></a><span>ggplot</span>(iris) <span>+</span> 
<a data-line-number="4"></a>  <span>aes</span>(Sepal.Length, Sepal.Width, <span>color =</span> Petal.Length) <span>+</span> 
<a data-line-number="5"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="6"></a>  <span>scale_colour_viridis</span>() <span># from the viridis package</span></code><code></code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i2.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-14-1.png?w=450&ssl=1" alt="" class="wp-image-541" data-recalc-dims="1"></p>
<p>Another way to do that was to get a vector of hex colors, with the {viridisLite} package (note that the functions from {viridis} call functions from {viridisLite}).</p>
<div>
<pre><code><a data-line-number="1"></a>pal &lt;- viridisLite<span>::</span><span>viridis</span>(<span>3</span>)
<a data-line-number="2"></a>pal</code></pre>
</div>
<pre><code>## [1] &quot;#440154FF&quot; &quot;#21908CFF&quot; &quot;#FDE725FF&quot;
</code></pre>
<div>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(iris) <span>+</span> 
<a data-line-number="2"></a>  <span>aes</span>(Sepal.Length, Sepal.Width, <span>color =</span> Species) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_color_manual</span>(<span>values =</span> pal)</code></pre>
</div>
<p> </p>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-15-1.png?w=450&ssl=1" alt="" class="wp-image-542" data-recalc-dims="1"></p>
<h3>viridis as a ggplot scale</h3>
<p>But now, thanks to the new ggplot2 (version 3.0.0), you can call directly the viridis palette with the ad hoc functions.</p>
<p><code><span>ggplot</span>(iris) <span>+</span> </code></p>
<p><code><span>    aes</span>(Sepal.Length, Sepal.Width, <span>color =</span> Species) <span>+</span> </code></p>
<p><code><span>    geom_point</span>() <span>+</span> </code></p>
<p><code><span>    scale_color_viridis_d</span>()#From ggplot2</code><code></code></p>
<p><code></code></p>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-16-1.png?w=450&ssl=1" alt="" class="wp-image-543" data-recalc-dims="1"></p>
<p>There are two scales for numeric inputs: discrete (<code>scale_color_viridis_d</code>) and continous (<code>scale_color_viridis_c</code>).</p>
<p>And there is of course the counterpart with fill :<code></code></p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(faithfuld) <span>+</span>
<a data-line-number="2"></a>  <span>aes</span>(waiting, eruptions, <span>fill =</span> density) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_tile</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_fill_viridis_c</span>()</code><code></code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-17-1.png?w=450&ssl=1" alt="" class="wp-image-546" data-recalc-dims="1"></p>
<p>Note the difference in readability compared to the default palette:<code></code></p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(faithfuld) <span>+</span>
<a data-line-number="2"></a>  <span>aes</span>(waiting, eruptions, <span>fill =</span> density) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_tile</span>() </code><code></code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-18-1.png?w=450&ssl=1" alt="" class="wp-image-547" data-recalc-dims="1"></p>
<p>Also, viridis is the new default palette <em>for ordered factors</em> :</p>
<pre><code>diamonds %>%
  dplyr::count(cut, color) %>%
  ggplot() +
  aes(cut, n, fill = color) +
  geom_col()</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-19-1.png?w=450&ssl=1" alt="" class="wp-image-548" data-recalc-dims="1"></p>
<p>Finally, and I didn’t presented them so far, but there are 4 other available colormaps: “magma” (or “A”), “inferno” (or “B”), “plasma” (or “C”), and “cividis” (or “E”), which can be passed to the <code>option</code> argument in the various scales:</p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(mtcars) <span>+</span> 
<a data-line-number="2"></a>  <span>aes</span>(mpg, disp, <span>color =</span> cyl) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_color_viridis_c</span>(<span>option =</span> <span>&quot;A&quot;</span>)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i1.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-20-1.png?w=450&ssl=1" alt="" class="wp-image-550" data-recalc-dims="1"></p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(mtcars) <span>+</span> 
<a data-line-number="2"></a>  <span>aes</span>(mpg, disp, <span>color =</span> cyl) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_color_viridis_c</span>(<span>option =</span> <span>&quot;B&quot;</span>)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-21-1.png?w=450&ssl=1" alt="" class="wp-image-549" data-recalc-dims="1"></p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(mtcars) <span>+</span> 
<a data-line-number="2"></a>  <span>aes</span>(mpg, disp, <span>color =</span> cyl) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_color_viridis_c</span>(<span>option =</span> <span>&quot;C&quot;</span>)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-22-1.png?w=450&ssl=1" alt="" class="wp-image-551" data-recalc-dims="1"></p>
<pre><code><a data-line-number="1"></a><span>ggplot</span>(mtcars) <span>+</span> 
<a data-line-number="2"></a>  <span>aes</span>(mpg, disp, <span>color =</span> cyl) <span>+</span> 
<a data-line-number="3"></a>  <span>geom_point</span>() <span>+</span> 
<a data-line-number="4"></a>  <span>scale_color_viridis_c</span>(<span>option =</span> <span>&quot;E&quot;</span>)</code></pre>
<p><img sizes="(max-width: 672px) 100vw, 672px" src="https://i0.wp.com/rtask.thinkr.fr/wp-content/uploads/unnamed-chunk-23-1.png?w=450&ssl=1" alt="" class="wp-image-552" data-recalc-dims="1"></p>
<p>So, to sum up: <img alt="💛" src="https://i0.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f49b.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"><img alt="💚" src="https://i0.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f49a.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"><img alt="💜" src="https://i2.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f49c.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"><img alt="💙" src="https://i2.wp.com/s.w.org/images/core/emoji/2.4/72x72/1f499.png?w=456&ssl=1" class="wp-smiley" data-recalc-dims="1"></p>
<p>And in conclusion, here is why the inclusion of viridis as a <strong>native scale in ggplot2</strong> is a good news:</p>
<ul>
<li>More beautiful plots (but in the end, that’s secondary)</li>
<li><strong>Better and more inclusive end products</strong> : easier to read for people with colorblindness or vision problem</li>
</ul>
<p>NB: of course, this was already possible before, but the fact that it is now native will make it more used and reknown.</p>
<p>The post <a rel="nofollow" href="https://rtask.thinkr.fr/blog/ggplot2-welcome-viridis/" target="_blank">[ggplot2] Welcome viridis !</a> appeared first on <a rel="nofollow" href="https://rtask.thinkr.fr/" target="_blank">(en) The R Task Force</a>.</p>
	<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://rtask.thinkr.fr/blog/ggplot2-welcome-viridis/"> (en) The R Task Force</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/RfrJXHn9md0" height="1"></a></div>