Hi all, so given our logo here at Jumping Rivers is a set of lines designed to look like a Gaussian Process, we thought it would be a neat idea to recreate this image in R. To do so we’re going to need a couple packages. We do the usual install.packages() dance (remember this step can be performed in parallel)
install.packages(c(&quot;ggplot2&quot;, &quot;ggalt&quot;, &quot;readr&quot;))
We’re also going to need the data containing the points for the lines and which set of points belongs to which line. There is a Gist available to download via Jumping Rivers. To read in the csv file we’re going to use the raw data link.
(dd = readr::read_csv(&quot;https://goo.gl/HzNbAp&quot;, col_types = &quot;ddc&quot;))
## # A tibble: 40 x 3
## x y type ## ## 1 36.9 -311 1 ## 2 67.9 -332 1 ## 3 179 -156 1 ## 4 254 -259 1 ## # ... with 36 more rows
The data set contains three columns, x, y and type, where type indicates the line. Let’s start with a standard geom_line()
library(&quot;ggplot2&quot;)
g = ggplot(dd, aes(x, y))
g + geom_line(aes(group = type))
The graph shares similarities with our logo, but is too discrete. To smooth the curve, we’ll use a function from the ggalt package
library(&quot;ggalt&quot;)
g + geom_xspline(aes(group = type), spline_shape = -0.3) The function geom_xspline() is the X-spline version of geom_line(), drawing a curve relative to the observations.
The parameterspline_shape = -0.3 controls the shape of the spline relative to the observations. This can be a number between -1 &amp; 1. Basically, -1 = bumpy lines, 1 = flat lines.
Next we’ll change the widths of the lines
(g1 = g + geom_xspline(aes(size = type, group = type), spline_shape = -0.3) + scale_size_manual(values = (4:1)/2, guide = FALSE))
The scale_size_manual() function enables us to control the line widths. Finally, we remove the background
g1 + theme_void()
The functiontheme_void() does what it says on the tin it gives us a theme completely void of everything. Bar the lines of course.
That’s all for now.
Thanks for reading! :)