galaaz 0.4.7 → 0.4.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1179 -39
  3. data/Rakefile +4 -2
  4. data/bin/grun +1 -1
  5. data/bin/gstudio +1 -1
  6. data/blogs/dev/dev.Rmd +2 -56
  7. data/blogs/dev/dev.md +32 -61
  8. data/blogs/dev/dev2.Rmd +65 -0
  9. data/blogs/dplyr/dplyr.Rmd +29 -0
  10. data/blogs/{dev/dev.html → dplyr/dplyr.html} +88 -57
  11. data/blogs/dplyr/dplyr.md +58 -0
  12. data/blogs/gknit/gknit.html +1262 -25
  13. data/blogs/gknit/gknit.md +471 -27
  14. data/blogs/gknit/gknit_files/figure-html/bubble-1.png +0 -0
  15. data/blogs/manual/graph.rb +29 -0
  16. data/blogs/manual/manual.Rmd +567 -29
  17. data/blogs/manual/manual.html +743 -46
  18. data/blogs/manual/manual.md +1179 -39
  19. data/blogs/nse_dplyr/nse_dplyr.Rmd +466 -11
  20. data/blogs/nse_dplyr/nse_dplyr.html +472 -37
  21. data/blogs/nse_dplyr/nse_dplyr.md +645 -32
  22. data/blogs/ruby_plot/ruby_plot.Rmd +4 -4
  23. data/blogs/ruby_plot/ruby_plot.html +217 -2
  24. data/blogs/ruby_plot/ruby_plot.md +226 -1
  25. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png +0 -0
  26. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.svg +2 -2
  27. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png +0 -0
  28. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.svg +70 -70
  29. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png +0 -0
  30. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.svg +72 -72
  31. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png +0 -0
  32. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.svg +116 -116
  33. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png +0 -0
  34. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.svg +176 -176
  35. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png +0 -0
  36. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png +0 -0
  37. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.svg +236 -236
  38. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png +0 -0
  39. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.svg +176 -176
  40. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png +0 -0
  41. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.svg +160 -160
  42. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png +0 -0
  43. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.svg +105 -105
  44. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png +0 -0
  45. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.svg +121 -121
  46. data/examples/islr/ch2.spec.rb +1 -1
  47. data/examples/islr/ch3_boston.rb +4 -4
  48. data/examples/islr/x_y_rnorm.jpg +0 -0
  49. data/lib/R_interface/r.rb +1 -1
  50. data/lib/R_interface/r_methods.rb +2 -2
  51. data/lib/R_interface/rdata_frame.rb +8 -5
  52. data/lib/R_interface/rindexed_object.rb +1 -2
  53. data/lib/R_interface/rlist.rb +1 -0
  54. data/lib/R_interface/robject.rb +0 -1
  55. data/lib/R_interface/rpkg.rb +14 -6
  56. data/lib/R_interface/rsupport.rb +7 -9
  57. data/lib/R_interface/ruby_extensions.rb +17 -5
  58. data/lib/gknit/knitr_engine.rb +9 -2
  59. data/lib/util/exec_ruby.rb +2 -2
  60. data/specs/r_dataframe.spec.rb +173 -0
  61. data/specs/r_list.spec.rb +4 -4
  62. data/specs/ruby_expression.spec.rb +2 -11
  63. data/specs/tmp.rb +76 -34
  64. data/version.rb +1 -1
  65. metadata +17 -6
  66. data/blogs/dev/dev_files/figure-html/bubble-1.png +0 -0
  67. data/blogs/dev/dev_files/figure-html/diverging_bar. +0 -0
  68. data/blogs/dev/dev_files/figure-html/diverging_bar.png +0 -0
@@ -23,7 +23,7 @@ fontsize: 11pt
23
23
  # set global chunk options. We want all figures to be 'svg'
24
24
  # out.width will control the width of the ouput figure, in this case, we want it
25
25
  # to be 50% of the width
26
- knitr::opts_chunk$set(fig.width=1, fig.height=7, dev="svg", out.width = '50%')
26
+ # knitr::opts_chunk$set(fig.width=1, fig.height=7, dev="svg", out.width = '50%')
27
27
  ```
28
28
 
29
29
  According to Wikipedia "Ruby is a dynamic, interpreted, reflective, object-oriented,
@@ -291,7 +291,7 @@ the formula to ```+:supp =~ +:all``` would split the plot horizontally.
291
291
 
292
292
  @bp = @base_tooth + R.geom_boxplot +
293
293
  # Split in vertical direction
294
- R.facet_grid(+:all =~ +:supp)
294
+ R.facet_grid(:all.til :supp)
295
295
 
296
296
  puts @bp
297
297
  ```
@@ -427,7 +427,7 @@ a boxplot known as a _violin plot_ with jittered data.
427
427
 
428
428
  ```{ruby violin_with_jitter}
429
429
  @violin = @base_tooth + R.geom_violin(E.aes(fill: :dose)) +
430
- R.facet_grid(+:all =~ +:supp) +
430
+ R.facet_grid(:all.til :supp) +
431
431
  R.geom_jitter(shape: 23, color: "cyan3", size: 1) +
432
432
  R.scale_fill_manual(values: R.c("cyan", "deepskyblue", "deepskyblue4"),
433
433
  breaks: R.c("2","1","0.5"))
@@ -570,7 +570,7 @@ Each animal received one of three dose levels of vitamin C.
570
570
  EOT
571
571
 
572
572
  @bp = @tooth_growth.ggplot(E.aes(x: :supp, y: :len, group: :supp)) +
573
- R.geom_boxplot(E.aes(fill: :supp)) + R.facet_grid(+:all =~ +:dose) +
573
+ R.geom_boxplot(E.aes(fill: :supp)) + R.facet_grid(:all.til :dose) +
574
574
  R.scale_fill_manual(values: R.c("cyan", "deepskyblue4")) +
575
575
  R.labs(title: "Tooth Growth: Length by Dose",
576
576
  subtitle: "Faceted by dose",
@@ -283,6 +283,9 @@ img {
283
283
  button.code-folding-btn:focus {
284
284
  outline: none;
285
285
  }
286
+ summary {
287
+ display: list-item;
288
+ }
286
289
  </style>
287
290
 
288
291
 
@@ -290,10 +293,71 @@ button.code-folding-btn:focus {
290
293
  <div class="container-fluid main-container">
291
294
 
292
295
  <!-- tabsets -->
296
+
297
+ <style type="text/css">
298
+ .tabset-dropdown > .nav-tabs {
299
+ display: inline-table;
300
+ max-height: 500px;
301
+ min-height: 44px;
302
+ overflow-y: auto;
303
+ background: white;
304
+ border: 1px solid #ddd;
305
+ border-radius: 4px;
306
+ }
307
+
308
+ .tabset-dropdown > .nav-tabs > li.active:before {
309
+ content: "";
310
+ font-family: 'Glyphicons Halflings';
311
+ display: inline-block;
312
+ padding: 10px;
313
+ border-right: 1px solid #ddd;
314
+ }
315
+
316
+ .tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
317
+ content: "";
318
+ border: none;
319
+ }
320
+
321
+ .tabset-dropdown > .nav-tabs.nav-tabs-open:before {
322
+ content: "";
323
+ font-family: 'Glyphicons Halflings';
324
+ display: inline-block;
325
+ padding: 10px;
326
+ border-right: 1px solid #ddd;
327
+ }
328
+
329
+ .tabset-dropdown > .nav-tabs > li.active {
330
+ display: block;
331
+ }
332
+
333
+ .tabset-dropdown > .nav-tabs > li > a,
334
+ .tabset-dropdown > .nav-tabs > li > a:focus,
335
+ .tabset-dropdown > .nav-tabs > li > a:hover {
336
+ border: none;
337
+ display: inline-block;
338
+ border-radius: 4px;
339
+ }
340
+
341
+ .tabset-dropdown > .nav-tabs.nav-tabs-open > li {
342
+ display: block;
343
+ float: none;
344
+ }
345
+
346
+ .tabset-dropdown > .nav-tabs > li {
347
+ display: none;
348
+ }
349
+ </style>
350
+
293
351
  <script>
294
352
  $(document).ready(function () {
295
353
  window.buildTabsets("TOC");
296
354
  });
355
+
356
+ $(document).ready(function () {
357
+ $('.tabset-dropdown > .nav-tabs > li').click(function () {
358
+ $(this).parent().toggleClass('nav-tabs-open')
359
+ });
360
+ });
297
361
  </script>
298
362
 
299
363
  <!-- code folding -->
@@ -302,7 +366,6 @@ $(document).ready(function () {
302
366
 
303
367
 
304
368
 
305
-
306
369
  <div class="fluid-row" id="header">
307
370
 
308
371
 
@@ -347,13 +410,47 @@ $(document).ready(function () {
347
410
  <h1>Exploring the Dataset</h1>
348
411
  <p>Let’s start by exploring our selected dataset. ToothGrowth is an R dataset. A dataset is like a simple excel spreadsheet, in which each column has only one type of data. For instance one column can have float, the other integer, and a third strings. This dataset analyzes the length of odontoblasts (cells responsible for tooth growth) in 60 guinea pigs, where each animal received one of three dose levels of Vitamin C (0.5, 1, and 2 mg/day) by one of two delivery methods, orange juice OJ or ascorbic acid (a form of vitamin C and coded as VC).</p>
349
412
  <p>The ToothGrowth dataset contains three columns: ‘len’, ‘supp’ and ‘dose’. Let’s take a look at a few rows of this dataset. In Galaaz, R variables are accessed by using the corresponding Ruby symbol preceeded by the tilda (‘~’) function. Note in the following chunk that ‘ToothGrowth’ is the R variable and Ruby’s ‘<span class="citation">@tooth_growth</span>’ is assigned the value of ‘~:ToothGrowth’.</p>
413
+ <pre class="ruby"><code># Read the R ToothGrowth variable and assign it to the
414
+ # Ruby instance variable @tooth_growth that will be
415
+ # available to all Ruby chunks in this document.
416
+ @tooth_growth = ~:ToothGrowth
417
+ # print the first few elements of the dataset
418
+ puts @tooth_growth.head</code></pre>
419
+ <pre><code>## len supp dose
420
+ ## 1 4.2 VC 0.5
421
+ ## 2 11.5 VC 0.5
422
+ ## 3 7.3 VC 0.5
423
+ ## 4 5.8 VC 0.5
424
+ ## 5 6.4 VC 0.5
425
+ ## 6 10.0 VC 0.5</code></pre>
350
426
  <p>Great! We’ve managed to read the ToothGrowth dataset and take a look at its elements. We see here the first 6 rows of the dataset. To access a column, follow the dataset name with a dot (‘.’) and the name of the column. Also use dot notation to chain methods in usual Ruby style.</p>
427
+ <pre class="ruby"><code># Access the tooth_growth 'len' column and print the first few
428
+ # elements of this column with the 'head' method.
429
+ puts @tooth_growth.len.head</code></pre>
430
+ <pre><code>## [1] 4.2 11.5 7.3 5.8 6.4 10.0</code></pre>
351
431
  <p>The ‘dose’ column contains a numeric value with either, 0.5, 1 or 2, although the first 6 rows as seen above only contain the 0.5 values. Even though those are number, they are better interpreted as a <a href="https://swcarpentry.github.io/r-novice-inflammation/12-supp-factors/">factor or cathegory</a>. So, let’s convert our ‘dose’ column from numeric to ‘factor’. In R, the function ‘as.factor’ is used to convert data in a vector to factors. To use this function from Galaaz the dot (‘.’) in the function name is substituted by ’__’ (double underline). The function ‘as.factor’ becomes ’R.as__factor’ or just ’as__factor’ when chaining.</p>
432
+ <pre class="ruby"><code># convert the dose to a factor
433
+ @tooth_growth.dose = @tooth_growth.dose.as__factor</code></pre>
352
434
  <p>Let’s explore some more details of this dataset. In particular, let’s look at its dimensions, structure and summary statistics.</p>
435
+ <pre class="ruby"><code>puts @tooth_growth.dim</code></pre>
436
+ <pre><code>## [1] 60 3</code></pre>
353
437
  <p>This dataset has 60 rows, one for each subject and 3 columns, as we have already seen.</p>
354
438
  <p>Note that we do not need to call ‘puts’ when using the ‘str’ function. This functions does not return anything and prints the structure of the dataset as a side effect.</p>
439
+ <pre class="ruby"><code>@tooth_growth.str</code></pre>
440
+ <pre><code>## 'data.frame': 60 obs. of 3 variables:
441
+ ## $ len : num 4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
442
+ ## $ supp: Factor w/ 2 levels &quot;OJ&quot;,&quot;VC&quot;: 2 2 2 2 2 2 2 2 2 2 ...
443
+ ## $ dose: Factor w/ 3 levels &quot;0.5&quot;,&quot;1&quot;,&quot;2&quot;: 1 1 1 1 1 1 1 1 1 1 ...</code></pre>
355
444
  <p>Observe that both variables ‘supp’ and ‘dose’ are factors. The system made variable ‘supp’ a factor automatically, since it contais two strings OJ and VC.</p>
356
445
  <p>Finally, using the summary method, we get the statistical summary for the dataset</p>
446
+ <pre class="ruby"><code>puts @tooth_growth.summary</code></pre>
447
+ <pre><code>## len supp dose
448
+ ## Min. : 4.20 OJ:30 0.5:20
449
+ ## 1st Qu.:13.07 VC:30 1 :20
450
+ ## Median :19.25 2 :20
451
+ ## Mean :18.81
452
+ ## 3rd Qu.:25.27
453
+ ## Max. :33.90</code></pre>
357
454
  </div>
358
455
  <div id="doing-the-data-analysis" class="section level1">
359
456
  <h1>Doing the Data Analysis</h1>
@@ -366,7 +463,11 @@ $(document).ready(function () {
366
463
  <p>This description might be a bit cryptic and it is best to see it at work to understand it. Basically, in the <em>grammar of graphics</em> developers add layers of components such as grid, axis, data, title, subtitle and also graphical primitives such as <em>bar plot</em>, <em>box plot</em>, to form the final graphics.</p>
367
464
  <p>In order to make a plot, we use the ‘ggplot’ function to the dataset. In R, this would be written as <code>ggplot(&lt;dataset&gt;, ...)</code>. Galaaz gives you the flexibility to use either <code>R.ggplot(&lt;dataset&gt;, ...)</code> or <code>&lt;dataset&gt;.ggplot(...)</code>. In the graph s pecification bellow, we use the second notation that looks more like Ruby. ggplot uses the ‘aes’ method to specify x and y axes; in this case, the ‘dose’ on the <span class="math inline">\(x\)</span> axis and the ‘length’ on the <span class="math inline">\(y\)</span> axis: ‘E.aes(x: :dose, y: :len)’. To specify the type of plot add a geom to the plot. For a boxplot, the geom is R.geom_boxplot.</p>
368
465
  <p>Note also that we have a call to ‘R.png’ before plotting and ’R.dev__off’ after the print statement. ‘R.png’ opens a ‘png device’ for outputting the plot. If we do no pass a name to the ‘png’ function, the image gets a default name of ‘Rplot&lt;nnn&gt;’ where &lt;nnn&gt; is the number of the plot. ’R.dev__off’ closes the device and creates the ‘png’ file. We can then include the generated ‘png’ file in the document by adding an rmarkdown directive.</p>
369
- <p><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIHZpZXdCb3g9JzAgMCA1MDYgNTA2JyBzdHlsZT0nZmlsbDp0cmFuc3BhcmVudCc+CjxnIHN0eWxlPSdzdHJva2Utd2lkdGg6MS40MjI2Mzc3OTUyNzU1OTA2O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbGluZWNhcDpyb3VuZCc+CjxyZWN0IHg9JzAnIHk9JzAnIHdpZHRoPSc1MDYnIGhlaWdodD0nNTA2JyBzdHlsZT0nc3Ryb2tlOiNGRkZGRkY7ZmlsbDojRkZGRkZGJy8+CjxyZWN0IHg9JzMxJyB5PSc2JyB3aWR0aD0nNDY5JyBoZWlnaHQ9JzQ3Mycgc3R5bGU9J3N0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS1vcGFjaXR5OjAuMDAwO2ZpbGw6I0VCRUJFQicvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDowLjcxMTMxODg5NzYzNzc5NTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPSczMSw0NDYgNTAwLDQ0Nicgc3R5bGU9J3N0cm9rZTojRkZGRkZGJy8+Cjxwb2x5bGluZSBwb2ludHM9JzMxLDMwMSA1MDAsMzAxJyBzdHlsZT0nc3Ryb2tlOiNGRkZGRkYnLz4KPHBvbHlsaW5lIHBvaW50cz0nMzEsMTU2IDUwMCwxNTYnIHN0eWxlPSdzdHJva2U6I0ZGRkZGRicvPgo8cG9seWxpbmUgcG9pbnRzPSczMSwxMSA1MDAsMTEnIHN0eWxlPSdzdHJva2U6I0ZGRkZGRicvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoxLjQyMjYzNzc5NTI3NTU5MDY7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPSczMSwzNzMgNTAwLDM3Mycgc3R5bGU9J3N0cm9rZTojRkZGRkZGJy8+Cjxwb2x5bGluZSBwb2ludHM9JzMxLDIyOCA1MDAsMjI4JyBzdHlsZT0nc3Ryb2tlOiNGRkZGRkYnLz4KPHBvbHlsaW5lIHBvaW50cz0nMzEsODQgNTAwLDg0JyBzdHlsZT0nc3Ryb2tlOiNGRkZGRkYnLz4KPHBvbHlsaW5lIHBvaW50cz0nMTE5LDQ3OSAxMTksNicgc3R5bGU9J3N0cm9rZTojRkZGRkZGJy8+Cjxwb2x5bGluZSBwb2ludHM9JzI2Niw0NzkgMjY2LDYnIHN0eWxlPSdzdHJva2U6I0ZGRkZGRicvPgo8cG9seWxpbmUgcG9pbnRzPSc0MTIsNDc5IDQxMiw2JyBzdHlsZT0nc3Ryb2tlOiNGRkZGRkYnLz4KPC9nPjxnIHN0eWxlPSdzdHJva2Utd2lkdGg6MC45NDQ4ODE4ODk3NjM3Nzk2O3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbGluZWNhcDpyb3VuZCc+CjxjaXJjbGUgY3g9JzExOScgY3k9JzIwNycgcj0nMicgc3R5bGU9J3N0cm9rZTojMzMzMzMzO2ZpbGw6IzMzMzMzMycvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoxLjQyMjYzNzc5NTI3NTU5MDY7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPScxMTksMzQxIDExOSwyNjMnIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8cG9seWxpbmUgcG9pbnRzPScxMTksNDEzIDExOSw0NTcnIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoxLjQyMjYzNzc5NTI3NTU5MDY7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOnJvdW5kJz4KPHBvbHlsaW5lIHBvaW50cz0nNjQsMzQxIDY0LDQxMyAxNzQsNDEzIDE3NCwzNDEgNjQsMzQxIDY0LDM0MScgc3R5bGU9J3N0cm9rZTojMzMzMzMzO2ZpbGw6I0ZGRkZGRicvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoyLjg0NTI3NTU5MDU1MTE4MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPSc2NCwzNzUgMTc0LDM3NScgc3R5bGU9J3N0cm9rZTojMzMzMzMzJy8+CjwvZz48ZyBzdHlsZT0nc3Ryb2tlLXdpZHRoOjEuNDIyNjM3Nzk1Mjc1NTkwNjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLWxpbmVjYXA6YnV0dCc+Cjxwb2x5bGluZSBwb2ludHM9JzI2NiwxODAgMjY2LDEyMycgc3R5bGU9J3N0cm9rZTojMzMzMzMzJy8+Cjxwb2x5bGluZSBwb2ludHM9JzI2NiwyODMgMjY2LDMyMScgc3R5bGU9J3N0cm9rZTojMzMzMzMzJy8+CjwvZz48ZyBzdHlsZT0nc3Ryb2tlLXdpZHRoOjEuNDIyNjM3Nzk1Mjc1NTkwNjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQnPgo8cG9seWxpbmUgcG9pbnRzPScyMTEsMTgwIDIxMSwyODMgMzIxLDI4MyAzMjEsMTgwIDIxMSwxODAgMjExLDE4MCcgc3R5bGU9J3N0cm9rZTojMzMzMzMzO2ZpbGw6I0ZGRkZGRicvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoyLjg0NTI3NTU5MDU1MTE4MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPScyMTEsMjM5IDMyMSwyMzknIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoxLjQyMjYzNzc5NTI3NTU5MDY7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPSc0MTIsMTE1IDQxMiwyNycgc3R5bGU9J3N0cm9rZTojMzMzMzMzJy8+Cjxwb2x5bGluZSBwb2ludHM9JzQxMiwxNzcgNDEyLDI1MCcgc3R5bGU9J3N0cm9rZTojMzMzMzMzJy8+CjwvZz48ZyBzdHlsZT0nc3Ryb2tlLXdpZHRoOjEuNDIyNjM3Nzk1Mjc1NTkwNjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLWxpbmVjYXA6cm91bmQnPgo8cG9seWxpbmUgcG9pbnRzPSczNTgsMTE1IDM1OCwxNzcgNDY3LDE3NyA0NjcsMTE1IDM1OCwxMTUgMzU4LDExNScgc3R5bGU9J3N0cm9rZTojMzMzMzMzO2ZpbGw6I0ZGRkZGRicvPgo8L2c+PGcgc3R5bGU9J3N0cm9rZS13aWR0aDoyLjg0NTI3NTU5MDU1MTE4MTM7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1saW5lY2FwOmJ1dHQnPgo8cG9seWxpbmUgcG9pbnRzPSczNTgsMTQyIDQ2NywxNDInIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8L2c+PHRleHQgeD0nMTYnIHk9JzM3NicgbGVuZ3RoQWRqdXN0PSdzcGFjaW5nQW5kR2x5cGhzJyB0ZXh0TGVuZ3RoPScxMXB4JyBzdHlsZT0nZm9udC1zaXplOjguOHB4O2ZpbGw6IzRENEQ0RCc+MTA8L3RleHQ+Cjx0ZXh0IHg9JzE2JyB5PScyMzEnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nMTFweCcgc3R5bGU9J2ZvbnQtc2l6ZTo4LjhweDtmaWxsOiM0RDRENEQnPjIwPC90ZXh0Pgo8dGV4dCB4PScxNicgeT0nODcnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nMTFweCcgc3R5bGU9J2ZvbnQtc2l6ZTo4LjhweDtmaWxsOiM0RDRENEQnPjMwPC90ZXh0Pgo8ZyBzdHlsZT0nc3Ryb2tlLXdpZHRoOjEuNDIyNjM3Nzk1Mjc1NTkwNjtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLWxpbmVjYXA6YnV0dCc+Cjxwb2x5bGluZSBwb2ludHM9JzI5LDM3MyAzMSwzNzMnIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8cG9seWxpbmUgcG9pbnRzPScyOSwyMjggMzEsMjI4JyBzdHlsZT0nc3Ryb2tlOiMzMzMzMzMnLz4KPHBvbHlsaW5lIHBvaW50cz0nMjksODQgMzEsODQnIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8cG9seWxpbmUgcG9pbnRzPScxMTksNDgyIDExOSw0NzknIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8cG9seWxpbmUgcG9pbnRzPScyNjYsNDgyIDI2Niw0NzknIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8cG9seWxpbmUgcG9pbnRzPSc0MTIsNDgyIDQxMiw0NzknIHN0eWxlPSdzdHJva2U6IzMzMzMzMycvPgo8L2c+PHRleHQgeD0nMTExJyB5PSc0OTAnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nMTZweCcgc3R5bGU9J2ZvbnQtc2l6ZTo4LjhweDtmaWxsOiM0RDRENEQnPjAuNTwvdGV4dD4KPHRleHQgeD0nMjYzJyB5PSc0OTAnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nNXB4JyBzdHlsZT0nZm9udC1zaXplOjguOHB4O2ZpbGw6IzRENEQ0RCc+MTwvdGV4dD4KPHRleHQgeD0nNDEwJyB5PSc0OTAnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nNXB4JyBzdHlsZT0nZm9udC1zaXplOjguOHB4O2ZpbGw6IzRENEQ0RCc+MjwvdGV4dD4KPHRleHQgeD0nMjUzJyB5PSc1MDAnIGxlbmd0aEFkanVzdD0nc3BhY2luZ0FuZEdseXBocycgdGV4dExlbmd0aD0nMjZweCcgc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHg7ZmlsbDojMDAwMDAwJz5kb3NlPC90ZXh0Pgo8dGV4dCB4PScxMycgeT0nMjUyJyBsZW5ndGhBZGp1c3Q9J3NwYWNpbmdBbmRHbHlwaHMnIHRleHRMZW5ndGg9JzIwcHgnIHN0eWxlPSdmb250LXNpemU6MTEuMHB4O2ZpbGw6IzAwMDAwMCcgdHJhbnNmb3JtPSdyb3RhdGUoLTkwLDEzLDI1MiknPmxlbjwvdGV4dD4KPC9zdmc+Cg==" width="50%" /></p>
466
+ <pre class="ruby"><code>require 'ggplot'
467
+
468
+ e = @tooth_growth.ggplot(E.aes(x: :dose, y: :len))
469
+ print e + R.geom_boxplot</code></pre>
470
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
370
471
  <p>Great! We’ve just managed to create and save our first plot in Ruby with only four lines of code. We can now easily see with this plot a clear trend: as the dose of the supplement is increased, so is the length of teeth.</p>
371
472
  </div>
372
473
  <div id="facetting-the-plot" class="section level2">
@@ -380,11 +481,22 @@ $(document).ready(function () {
380
481
  </ul>
381
482
  <p>Another way of writing a formula is to use the ‘formula’ function with the actual formula as a string. The formula <code>x ~ y</code> in R can be written as <code>R.formula(&quot;x ~ y&quot;)</code>. For more complex formulas, the use of the ‘formula’ function is preferred.</p>
382
483
  <p>The formula <code>+:all =~ +:supp</code> indicates to the ‘facet_grid’ function that it needs to facet the plot based on the <code>supp</code> variable and split the plot vertically. Changing the formula to <code>+:supp =~ +:all</code> would split the plot horizontally.</p>
484
+ <pre class="ruby"><code>@base_tooth = @tooth_growth.ggplot(E.aes(x: :dose, y: :len, group: :dose))
485
+
486
+ @bp = @base_tooth + R.geom_boxplot +
487
+ # Split in vertical direction
488
+ R.facet_grid(:all.til :supp)
489
+
490
+ puts @bp</code></pre>
491
+ <p><img src="data:image/png;base64,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7Xbu3Lls2bJkMvnoo49u2rRpdHS0hDZPid5b/V9nCRkeHtZSLVVU0IuICOhFREAvIiKgFxER0IuICOhFRAT0IiICehERAb2ICOhFRAT0IrHfGDNsDQG9COhFQC8CehHQi0Ql//znP6+66qozzzzzmmuueeGFF/KhDw+vvvrq8Kbw58aNG3Pn+/r67rvvvvPPP/+ss866/fbbt2zZknvTq6++euutt4bzl19++aZNmzy9AnqRImfbtm0B8T179oyOjr7//vtXXnllDvqXX375iiuuCCfDm3bt2hXg3rx5c/ZN11133XPPPff999+HN4X/NveboN94440LLrggfMyRkZHe3t5rr722q6vLkyygFylm7rrrrtwv9Ajp6enJQT979ux0Op17U3d395133pk9Puecc7788suff7SysrKgfO7h3r17b775Zk+ygF6kmJk5c+aPP/6Yezg0NJSDPmg+4U3hTPb4ySefvOiii/7yl7+0t7d/8cUXufeZNWvWjJ/mjDPO8CQL6EVKD/qQffv2rV279qGHHrrwwgvXrFmT+0+OHDniWRXQi0Qov3zpJjzMvSmdTucu3eTns88+Cy/ks8dz5szJZDKeVQG9SISydevWa665Zs+ePWNjY7t3757wxdirrroqnMy9KffF2HvvvffNN9/84Ycfwuv3jRs33nDDDdnzb7/99h133LFr166RkZHw1vBw3rx5nmQBvUiRs2nTpiuuuOKkt1du2LDh6quv/t3vfjfh9sru7u5EInH22Weff/75999//8GDB3NvCq/o//jHP5577rkzZ86cO3fu66+/7hkW0IuICOhFRAT0IiICehER0IuICOhFRAT0IiICehERAb2IiIBeRERALyIyvfN/0leE1umQQmUAAAAASUVORK5CYII=" /><!-- --></p>
383
492
  <p>It now becomes clear that although both methods of delivery have a direct impact on tooth growth, method (OJ) is non-linear having a higher impact with smaller doses of ascorbic acid and reducing it’s impact as the dose increases. With the (VC) approach, the impact seems to be more linear.</p>
384
493
  </div>
385
494
  <div id="adding-color" class="section level2">
386
495
  <h2>Adding Color</h2>
387
496
  <p>If we were writing about data analysis, we would make a better analysis of the trends and improve the statistical analysis. But here we are interested in working with ggplot in Ruby. So, let’s add some color to this plot to make the trend and comparison more visible. In the following plot, the boxes are color coded by dose. To add color, it is enough to add <code>fill: :dose</code> to the aesthetic of boxplot. With this command each ‘dose’ factor gets its own color.</p>
497
+ <pre class="ruby"><code>@bp = @bp + R.geom_boxplot(E.aes(fill: :dose))
498
+ puts @bp</code></pre>
499
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
388
500
  <p>Facetting helps us compare the general trends for each delivery method. Adding color allow us to compare specifically how each dosage impacts the tooth growth. It is possible to observe that with smaller doses, up to 1mg, OJ performs better than VC (red color). For 2mg, both OJ and VC have the same median, but OJ is less disperse (blue color). For 1mg (green color), OJ is significantly bettern than VC. By this very quick visual analysis, it seems that OJ is a better delivery method than VC.</p>
389
501
  </div>
390
502
  <div id="clarifying-the-data" class="section level2">
@@ -398,8 +510,16 @@ $(document).ready(function () {
398
510
  <p>A most unconventional design strategy is revealed: <em>to clarify, add detail.</em></p>
399
511
  </blockquote>
400
512
  <p>Let’s use this wisdom and add yet another layer of data to our plot, so that we clarify it with detail and do not leave large empty boxes. In this next plot, we add data points for each of the 60 pigs in the experiment. For that, add the function ‘R.geom_point’ to the plot.</p>
513
+ <pre class="ruby"><code># Split in vertical direction
514
+ @bp = @bp + R.geom_point
515
+
516
+ puts @bp</code></pre>
517
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
401
518
  <p>Now we can see the actual distribution of all the 60 subjects. Actually, this is not totally true. We have a hard time seing all 60 subjects. It seems that some points might be placed one over the other hiding useful information.</p>
402
519
  <p>But no sweat! Another layer might solve the problem. In the following plot a new layer called ‘geom_jitter’ is added to the plot. Jitter adds a small amount of random variation to the location of each point, and is a useful way of handling overplotting caused by discreteness in smaller datasets. This makes it easier to see all of the points and prevents data hiding. We also add color and change the shape of the points, making them even easier to see.</p>
520
+ <pre class="ruby"><code># Split in vertical direction
521
+ puts @bp + R.geom_jitter(shape: 23, color: &quot;cyan3&quot;, size: 1)</code></pre>
522
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
403
523
  <p>Now we can see all 60 points in the graph. We have here a much higher information density and we can see outliers and subjects distribution.</p>
404
524
  </div>
405
525
  </div>
@@ -411,6 +531,12 @@ $(document).ready(function () {
411
531
  <h2>Improving Colors</h2>
412
532
  <p>Let’s start by trying to improve colors. For now, we will not use the jitter layer. The previous plot has three bright colors that have no relashionship between them. Is there any obvious, or non-obvious for that matter, interpretation for the colors? Clearly, they are just random colors selected automatically by our software. Although those colors helped us understand the data, for a final presentation random colors can distract the viewer.</p>
413
533
  <p>In the following plot we use shades function ‘scale_fill_manual’ to change the colors of the boxes and order of labels. For colors, we use shades of blue for each dosage, with light blue (‘cyan’) representing the lower dose and deep blue (‘deepskyblue4’) the higher dose. Also, the legend could be improved: we use the ‘breaks’ parameter to put the smaller value (0.5) at the botton of the labels and the largest (2) at the top. This ordering seems more natural and matches with the actual order of the colors in the plot.</p>
534
+ <pre class="ruby"><code>@bp = @bp +
535
+ R.scale_fill_manual(values: R.c(&quot;cyan&quot;, &quot;deepskyblue&quot;, &quot;deepskyblue4&quot;),
536
+ breaks: R.c(&quot;2&quot;,&quot;1&quot;,&quot;0.5&quot;))
537
+
538
+ puts @bp</code></pre>
539
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
414
540
  </div>
415
541
  <div id="violin-plot-and-jitter" class="section level2">
416
542
  <h2>Violin Plot and Jitter</h2>
@@ -420,29 +546,118 @@ $(document).ready(function () {
420
546
  <p>A violin plot is a method of plotting numeric data. It is similar to a box plot with a rotated kernel density plot on each side.</p>
421
547
  <p>A violin plot has four layers. The outer shape represents all possible results, with thickness indicating how common. (Thus the thickest section represents the mode average.) The next layer inside represents the values that occur 95% of the time. The next layer (if it exists) inside represents the values that occur 50% of the time. The central dot represents the median average value.</p>
422
548
  </blockquote>
549
+ <pre class="ruby"><code>@violin = @base_tooth + R.geom_violin(E.aes(fill: :dose)) +
550
+ R.facet_grid(:all.til :supp) +
551
+ R.geom_jitter(shape: 23, color: &quot;cyan3&quot;, size: 1) +
552
+ R.scale_fill_manual(values: R.c(&quot;cyan&quot;, &quot;deepskyblue&quot;, &quot;deepskyblue4&quot;),
553
+ breaks: R.c(&quot;2&quot;,&quot;1&quot;,&quot;0.5&quot;))
554
+
555
+ puts @violin</code></pre>
556
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
423
557
  <p>This plot is an alternative to the original boxplot. For the final presentation, it is important to think which graphics will be best understood by our audience. A violin plot is a less known plot and could add mental overhead, yet, in my opinion, it does look a lit bit better than the boxplot and provides even more information than the boxplot with jitter.</p>
424
558
  </div>
425
559
  <div id="adding-decoration" class="section level2">
426
560
  <h2>Adding Decoration</h2>
427
561
  <p>Our final plot is starting to take shape, but a presentation plot should have at least a title, labels on the axes and maybe some other decorations. Let’s start adding those. Since decoration requires more graph area, this new plot has a ‘width’ and ‘height’ specification. When there is no specification, the default values from R for width and height are 480.</p>
428
562
  <p>The ‘labs’ function adds the required decoration. In this example we use ‘title’, ‘subtitle’, ‘x’ for the <span class="math inline">\(x\)</span> axis label and ‘y’, for the <span class="math inline">\(y\)</span> axis label, and ‘caption’ for information about the plot (for clarity, we defined a caption variable using Ruby’s Here Doc style).</p>
563
+ <pre class="ruby"><code>caption = &lt;&lt;-EOT
564
+ Length of odontoblasts in 60 guinea pigs.
565
+ Each animal received one of three dose levels of vitamin C.
566
+ EOT
567
+
568
+ @decorations =
569
+ R.labs(title: &quot;Tooth Growth: Length vs Vitamin C Dose&quot;,
570
+ subtitle: &quot;Faceted by delivery method, OJ or VC&quot;,
571
+ x: &quot;Dose (mg)&quot;, y: &quot;Teeth length&quot;,
572
+ caption: caption)
573
+
574
+ puts @bp + @decorations</code></pre>
575
+ <p><img src="data:image/png;base64,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X9r861//kh0UZTg5Ofn999/XWYDExMQjR47Yhkrfvn137typjt+xY0et71R69erFKiagQogLUCkvLy8qKlqzZk1MTMxdd92lTrB27dpOnTodOHDg8uXL8r9jx47qF/VDhw6VflwQkv2SlStXduvWTRm/a9eu3r1779u3r6ysTJ6Vh2aubbzzzjtrnf2lH5Xc3Nzo6OhDhw5J2eS/DGsnltnec889rGICKoQ4FRUlAQEBAsakSZO0+yVKli9f3rlzZx8fn1qnFG/ZsiUlJcXf3z8kJGTEiBEnTpxQn5I9lcGDBwcFBclsU1NT8/LyTBVAnho4cKBtqPxWfbpz+/btlVOKly1b5ufnpz51ww03bNu2jVVMQIWQRhTlivpPPvnE/lkdPnxYdrOU4SNHjshsuaKegAohjS5PPfXUsGHDbHvttGnTvvzyS8FDWEpKSlq6dKkyXmYos2XZElAhhFiRnJycqKgoHx+f9u3bL1mypKqqimVCCKgQQggBFUIIIaBCCCEEVAghhBBQIYQQAiqEEEJAhRBCCKgQQgghoEIIIQRUCCGEgAoh9VoRDbZXxddff/26666zeQ72vLU986/v9yUEVEiD6uutmrM9bxQREVFQUOD8z6jzhY5FxdpXWTv9p59+mpaWFhQU1KZNm5dfflkZeeXKlczMzNDQ0ObNmy9cuLDWryy7p+VADioEVGxMkyZN7OnmGjYqVuXEiRPt2rV7++23L1y48M0338yaNUsZv2LFiv79+39XHRlYtWoVTYOACnFMv1lZWSnbqtdee21AQMDkyZPVn3mXKZcvX678blViYqL6OyUXL16cPn16YGDgdddd9+STTyozNGhi/uXaXLp06Y477gipzp133ikPjc7K/PSSsrKymTNnKkVaunSp+kJT0xstW933NfNy+eAtW7aUd5RuWt691rL9+uuvR40aFRwc7O/vP3To0O+//14Zn5+f361bN3lTeWulH6/7pnWnMbUG9SzhKVOmqHsn2gwYMODdd99VhmUgOTm57jRGV7SZrQeLBTNV00wtrlrvYn6ZmyqtxeVJQIU4GJVHHnlkyJAhp06dkkYuXbP6u7kypbT806dPnz9/fsmSJervyf/hD38YM2bMD9WRvsBMX2P05drIrIYPHy6dyJkzZ2655Zb58+eb33g3Nf2CBQtGjBihjJdeSX25mfkbLVut9zXz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" /><!-- --></p>
429
576
  </div>
430
577
  <div id="the-corp-theme" class="section level2">
431
578
  <h2>The Corp Theme</h2>
432
579
  <p>We are almost done. But the default plot configuration does not yet look nice to the eye. We are still distracted by many aspects of the graph. First, the back font color does not look good. Then plot background, borders, grids all add clutter to the plot.</p>
433
580
  <p>We will now define our corporate theme. in a module that can be used/loaded for all plots, similar to CSS or any other style definition.</p>
434
581
  <p>In this theme, we remove borders and grids. The background if left for faceted plots but removed for non-faceted plots. Font colors are a shade o blue (color: ‘#00080’). Axis labels are moved near the end of the axis and written in ‘bold’.</p>
582
+ <pre class="ruby"><code>module CorpTheme
583
+
584
+ R.install_and_loads 'RColorBrewer'
585
+
586
+ #---------------------------------------------------------------------------------
587
+ # face can be (1=plain, 2=bold, 3=italic, 4=bold-italic)
588
+ #---------------------------------------------------------------------------------
589
+
590
+ def self.text_element(size, face: &quot;plain&quot;, hjust: nil)
591
+ E.element_text(color: &quot;#000080&quot;,
592
+ face: face,
593
+ size: size,
594
+ hjust: hjust)
595
+ end
596
+
597
+ #---------------------------------------------------------------------------------
598
+ # Defines the plot theme (visualization). In this theme we remove major and minor
599
+ # grids, borders and background. We also turn-off scientific notation.
600
+ #---------------------------------------------------------------------------------
601
+
602
+ def self.global_theme(faceted = false)
603
+
604
+ R.options(scipen: 999) # turn-off scientific notation like 1e+48
605
+ # R.theme_set(R.theme_bw)
606
+
607
+ # remove major grids
608
+ gb = R.theme(panel__grid__major: E.element_blank())
609
+ # remove minor grids
610
+ gb = gb + R.theme(panel__grid__minor: E.element_blank)
611
+ # gb = R.theme(panel__grid__minor: E.element_blank)
612
+ # remove border
613
+ gb = gb + R.theme(panel__border: E.element_blank)
614
+ # remove background. When working with faceted graphs, the background makes
615
+ # it easier to see each facet, so leave it
616
+ gb = gb + R.theme(panel__background: E.element_blank) if !faceted
617
+ # Change axis font
618
+ gb = gb + R.theme(axis__text: text_element(8))
619
+ # change axis title font
620
+ gb = gb + R.theme(axis__title: text_element(10, face: &quot;bold&quot;, hjust: 1))
621
+ # change font of title
622
+ gb = gb + R.theme(title: text_element(12, face: &quot;bold&quot;))
623
+ # change font of subtitle
624
+ gb = gb + R.theme(plot__subtitle: text_element(9))
625
+ # change font of captions
626
+ gb = gb + R.theme(plot__caption: text_element(8))
627
+
628
+ end
629
+
630
+ end</code></pre>
435
631
  </div>
436
632
  <div id="final-box-plot" class="section level2">
437
633
  <h2>Final Box Plot</h2>
438
634
  <p>We can now easily make our final boxplot and violin plot. All the layers for the plot were added in order to expose our understanding of the data and the need to present the result to our audience.</p>
439
635
  <p>The final specification is just the addition of all layers build up to this point (<span class="citation">@bp</span>), plus the decorations (<span class="citation">@decorations</span>), plus the corporate theme.</p>
440
636
  <p>Here is our final boxplot, without jitter.</p>
637
+ <pre class="ruby"><code>puts @bp + @decorations + CorpTheme.global_theme(faceted: true)</code></pre>
638
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
441
639
  <p>And here is the final violin plot, with jitter and the same look and feel of the corporate boxplot.</p>
640
+ <pre class="ruby"><code>puts @violin + @decorations + CorpTheme.global_theme(faceted: true)</code></pre>
641
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
442
642
  </div>
443
643
  <div id="another-view" class="section level2">
444
644
  <h2>Another View</h2>
445
645
  <p>We now make another plot, with the same look and feel as before but facetted by dose and not by supplement. This shows how easy it is to create new plots by just changing small statement on the <em>grammar of graphics</em>.</p>
646
+ <pre class="ruby"><code>caption = &lt;&lt;-EOT
647
+ Length of odontoblasts in 60 guinea pigs.
648
+ Each animal received one of three dose levels of vitamin C.
649
+ EOT
650
+
651
+ @bp = @tooth_growth.ggplot(E.aes(x: :supp, y: :len, group: :supp)) +
652
+ R.geom_boxplot(E.aes(fill: :supp)) + R.facet_grid(:all.til :dose) +
653
+ R.scale_fill_manual(values: R.c(&quot;cyan&quot;, &quot;deepskyblue4&quot;)) +
654
+ R.labs(title: &quot;Tooth Growth: Length by Dose&quot;,
655
+ subtitle: &quot;Faceted by dose&quot;,
656
+ x: &quot;Delivery method&quot;, y: &quot;Teeth length&quot;,
657
+ caption: caption) +
658
+ CorpTheme.global_theme(faceted: true)
659
+ puts @bp</code></pre>
660
+ <p><img src="data:image/png;base64,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" /><!-- --></p>
446
661
  </div>
447
662
  </div>
448
663
  <div id="conclusion" class="section level1">
@@ -143,6 +143,24 @@ following chunk that 'ToothGrowth' is the R variable and Ruby's '@tooth_growth'
143
143
  assigned the value of '~:ToothGrowth'.
144
144
 
145
145
 
146
+ ```ruby
147
+ # Read the R ToothGrowth variable and assign it to the
148
+ # Ruby instance variable @tooth_growth that will be
149
+ # available to all Ruby chunks in this document.
150
+ @tooth_growth = ~:ToothGrowth
151
+ # print the first few elements of the dataset
152
+ puts @tooth_growth.head
153
+ ```
154
+
155
+ ```
156
+ ## len supp dose
157
+ ## 1 4.2 VC 0.5
158
+ ## 2 11.5 VC 0.5
159
+ ## 3 7.3 VC 0.5
160
+ ## 4 5.8 VC 0.5
161
+ ## 5 6.4 VC 0.5
162
+ ## 6 10.0 VC 0.5
163
+ ```
146
164
 
147
165
  Great! We've managed to read the ToothGrowth dataset and take a look at its elements.
148
166
  We see here the first 6 rows of the dataset. To access a column, follow the dataset name
@@ -150,6 +168,15 @@ with a dot ('.') and the name of the column. Also use dot notation to chain meth
150
168
  in usual Ruby style.
151
169
 
152
170
 
171
+ ```ruby
172
+ # Access the tooth_growth 'len' column and print the first few
173
+ # elements of this column with the 'head' method.
174
+ puts @tooth_growth.len.head
175
+ ```
176
+
177
+ ```
178
+ ## [1] 4.2 11.5 7.3 5.8 6.4 10.0
179
+ ```
153
180
 
154
181
  The 'dose' column contains a numeric value with either, 0.5, 1 or 2, although the
155
182
  first 6 rows as seen above only contain the 0.5 values. Even though those are
@@ -159,11 +186,22 @@ function from Galaaz the dot ('.') in the function name is substituted by '__' (
159
186
  The function 'as.factor' becomes 'R.as__factor' or just 'as__factor' when chaining.
160
187
 
161
188
 
189
+ ```ruby
190
+ # convert the dose to a factor
191
+ @tooth_growth.dose = @tooth_growth.dose.as__factor
192
+ ```
162
193
 
163
194
  Let's explore some more details of this dataset. In particular, let's look at its dimensions,
164
195
  structure and summary statistics.
165
196
 
166
197
 
198
+ ```ruby
199
+ puts @tooth_growth.dim
200
+ ```
201
+
202
+ ```
203
+ ## [1] 60 3
204
+ ```
167
205
 
168
206
  This dataset has 60 rows, one for each subject and 3 columns, as we have already seen.
169
207
 
@@ -172,12 +210,35 @@ functions does not return anything and prints the structure of the dataset
172
210
  as a side effect.
173
211
 
174
212
 
213
+ ```ruby
214
+ @tooth_growth.str
215
+ ```
216
+
217
+ ```
218
+ ## 'data.frame': 60 obs. of 3 variables:
219
+ ## $ len : num 4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
220
+ ## $ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
221
+ ## $ dose: Factor w/ 3 levels "0.5","1","2": 1 1 1 1 1 1 1 1 1 1 ...
222
+ ```
175
223
  Observe that both variables 'supp' and 'dose' are factors. The system made variable 'supp'
176
224
  a factor automatically, since it contais two strings OJ and VC.
177
225
 
178
226
  Finally, using the summary method, we get the statistical summary for the dataset
179
227
 
180
228
 
229
+ ```ruby
230
+ puts @tooth_growth.summary
231
+ ```
232
+
233
+ ```
234
+ ## len supp dose
235
+ ## Min. : 4.20 OJ:30 0.5:20
236
+ ## 1st Qu.:13.07 VC:30 1 :20
237
+ ## Median :19.25 2 :20
238
+ ## Mean :18.81
239
+ ## 3rd Qu.:25.27
240
+ ## Max. :33.90
241
+ ```
181
242
 
182
243
  # Doing the Data Analysis
183
244
 
@@ -213,7 +274,15 @@ image gets a default name of 'Rplot\<nnn\>' where \<nnn\> is the number of the p
213
274
  closes the device and creates the 'png' file. We can
214
275
  then include the generated 'png' file in the document by adding an rmarkdown directive.
215
276
 
216
- <img src="/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.svg" width="50%" />
277
+
278
+ ```ruby
279
+ require 'ggplot'
280
+
281
+ e = @tooth_growth.ggplot(E.aes(x: :dose, y: :len))
282
+ print e + R.geom_boxplot
283
+ ```
284
+
285
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png)<!-- -->
217
286
 
218
287
  [//]: # (Including the 'png' file generated above. In future releases)
219
288
  [//]: # (of gKnit, the figures should be automatically saved and the name)
@@ -257,6 +326,18 @@ facet the plot based on the ```supp``` variable and split the plot vertically.
257
326
  the formula to ```+:supp =~ +:all``` would split the plot horizontally.
258
327
 
259
328
 
329
+ ```ruby
330
+ @base_tooth = @tooth_growth.ggplot(E.aes(x: :dose, y: :len, group: :dose))
331
+
332
+ @bp = @base_tooth + R.geom_boxplot +
333
+ # Split in vertical direction
334
+ R.facet_grid(:all.til :supp)
335
+
336
+ puts @bp
337
+ ```
338
+
339
+
340
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png)<!-- -->
260
341
 
261
342
  It now becomes clear that although both methods of delivery have a direct
262
343
  impact on tooth growth, method (OJ) is non-linear having a higher impact with smaller
@@ -273,6 +354,13 @@ enough to add ```fill: :dose``` to the aesthetic of boxplot. With this command
273
354
  factor gets its own color.
274
355
 
275
356
 
357
+ ```ruby
358
+ @bp = @bp + R.geom_boxplot(E.aes(fill: :dose))
359
+ puts @bp
360
+ ```
361
+
362
+
363
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png)<!-- -->
276
364
 
277
365
  Facetting helps us compare the general trends for each delivery method.
278
366
  Adding color allow us to compare specifically how each dosage impacts the tooth growth.
@@ -304,6 +392,15 @@ each of the 60 pigs in the experiment. For that, add the function 'R.geom_point
304
392
  plot.
305
393
 
306
394
 
395
+ ```ruby
396
+ # Split in vertical direction
397
+ @bp = @bp + R.geom_point
398
+
399
+ puts @bp
400
+ ```
401
+
402
+
403
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png)<!-- -->
307
404
 
308
405
  Now we can see the actual distribution of all the 60 subjects. Actually, this is not
309
406
  totally true. We have a hard time seing all 60 subjects. It seems that some points
@@ -317,6 +414,13 @@ prevents data hiding. We also add
317
414
  color and change the shape of the points, making them even easier to see.
318
415
 
319
416
 
417
+ ```ruby
418
+ # Split in vertical direction
419
+ puts @bp + R.geom_jitter(shape: 23, color: "cyan3", size: 1)
420
+ ```
421
+
422
+
423
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png)<!-- -->
320
424
 
321
425
  Now we can see all 60 points in the graph. We have here a much higher information density
322
426
  and we can see outliers and subjects distribution.
@@ -352,6 +456,16 @@ This ordering seems more natural and
352
456
  matches with the actual order of the colors in the plot.
353
457
 
354
458
 
459
+ ```ruby
460
+ @bp = @bp +
461
+ R.scale_fill_manual(values: R.c("cyan", "deepskyblue", "deepskyblue4"),
462
+ breaks: R.c("2","1","0.5"))
463
+
464
+ puts @bp
465
+ ```
466
+
467
+
468
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png)<!-- -->
355
469
 
356
470
  ## Violin Plot and Jitter
357
471
 
@@ -371,6 +485,18 @@ a boxplot known as a _violin plot_ with jittered data.
371
485
  > The central dot represents the median average value.
372
486
 
373
487
 
488
+ ```ruby
489
+ @violin = @base_tooth + R.geom_violin(E.aes(fill: :dose)) +
490
+ R.facet_grid(:all.til :supp) +
491
+ R.geom_jitter(shape: 23, color: "cyan3", size: 1) +
492
+ R.scale_fill_manual(values: R.c("cyan", "deepskyblue", "deepskyblue4"),
493
+ breaks: R.c("2","1","0.5"))
494
+
495
+ puts @violin
496
+ ```
497
+
498
+
499
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png)<!-- -->
374
500
 
375
501
  This plot is an alternative to the original boxplot. For the final presentation, it is
376
502
  important to think which graphics will be best understood by our audience. A violin plot
@@ -391,6 +517,23 @@ for information about the plot (for clarity, we defined a caption variable using
391
517
  Here Doc style).
392
518
 
393
519
 
520
+ ```ruby
521
+ caption = <<-EOT
522
+ Length of odontoblasts in 60 guinea pigs.
523
+ Each animal received one of three dose levels of vitamin C.
524
+ EOT
525
+
526
+ @decorations =
527
+ R.labs(title: "Tooth Growth: Length vs Vitamin C Dose",
528
+ subtitle: "Faceted by delivery method, OJ or VC",
529
+ x: "Dose (mg)", y: "Teeth length",
530
+ caption: caption)
531
+
532
+ puts @bp + @decorations
533
+ ```
534
+
535
+
536
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png)<!-- -->
394
537
 
395
538
  ## The Corp Theme
396
539
 
@@ -408,6 +551,57 @@ a shade o blue (color: '#00080'). Axis labels are moved near the end of the axi
408
551
  written in 'bold'.
409
552
 
410
553
 
554
+ ```ruby
555
+ module CorpTheme
556
+
557
+ R.install_and_loads 'RColorBrewer'
558
+
559
+ #---------------------------------------------------------------------------------
560
+ # face can be (1=plain, 2=bold, 3=italic, 4=bold-italic)
561
+ #---------------------------------------------------------------------------------
562
+
563
+ def self.text_element(size, face: "plain", hjust: nil)
564
+ E.element_text(color: "#000080",
565
+ face: face,
566
+ size: size,
567
+ hjust: hjust)
568
+ end
569
+
570
+ #---------------------------------------------------------------------------------
571
+ # Defines the plot theme (visualization). In this theme we remove major and minor
572
+ # grids, borders and background. We also turn-off scientific notation.
573
+ #---------------------------------------------------------------------------------
574
+
575
+ def self.global_theme(faceted = false)
576
+
577
+ R.options(scipen: 999) # turn-off scientific notation like 1e+48
578
+ # R.theme_set(R.theme_bw)
579
+
580
+ # remove major grids
581
+ gb = R.theme(panel__grid__major: E.element_blank())
582
+ # remove minor grids
583
+ gb = gb + R.theme(panel__grid__minor: E.element_blank)
584
+ # gb = R.theme(panel__grid__minor: E.element_blank)
585
+ # remove border
586
+ gb = gb + R.theme(panel__border: E.element_blank)
587
+ # remove background. When working with faceted graphs, the background makes
588
+ # it easier to see each facet, so leave it
589
+ gb = gb + R.theme(panel__background: E.element_blank) if !faceted
590
+ # Change axis font
591
+ gb = gb + R.theme(axis__text: text_element(8))
592
+ # change axis title font
593
+ gb = gb + R.theme(axis__title: text_element(10, face: "bold", hjust: 1))
594
+ # change font of title
595
+ gb = gb + R.theme(title: text_element(12, face: "bold"))
596
+ # change font of subtitle
597
+ gb = gb + R.theme(plot__subtitle: text_element(9))
598
+ # change font of captions
599
+ gb = gb + R.theme(plot__caption: text_element(8))
600
+
601
+ end
602
+
603
+ end
604
+ ```
411
605
 
412
606
  ## Final Box Plot
413
607
 
@@ -421,11 +615,23 @@ the decorations (@decorations), plus the corporate theme.
421
615
  Here is our final boxplot, without jitter.
422
616
 
423
617
 
618
+ ```ruby
619
+ puts @bp + @decorations + CorpTheme.global_theme(faceted: true)
620
+ ```
621
+
622
+
623
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png)<!-- -->
424
624
 
425
625
  And here is the final violin plot, with jitter and the same look and feel of the corporate
426
626
  boxplot.
427
627
 
428
628
 
629
+ ```ruby
630
+ puts @violin + @decorations + CorpTheme.global_theme(faceted: true)
631
+ ```
632
+
633
+
634
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png)<!-- -->
429
635
 
430
636
  ## Another View
431
637
 
@@ -434,6 +640,25 @@ dose and not by supplement. This shows how easy it is to create new plots by ju
434
640
  changing small statement on the _grammar of graphics_.
435
641
 
436
642
 
643
+ ```ruby
644
+ caption = <<-EOT
645
+ Length of odontoblasts in 60 guinea pigs.
646
+ Each animal received one of three dose levels of vitamin C.
647
+ EOT
648
+
649
+ @bp = @tooth_growth.ggplot(E.aes(x: :supp, y: :len, group: :supp)) +
650
+ R.geom_boxplot(E.aes(fill: :supp)) + R.facet_grid(:all.til :dose) +
651
+ R.scale_fill_manual(values: R.c("cyan", "deepskyblue4")) +
652
+ R.labs(title: "Tooth Growth: Length by Dose",
653
+ subtitle: "Faceted by dose",
654
+ x: "Delivery method", y: "Teeth length",
655
+ caption: caption) +
656
+ CorpTheme.global_theme(faceted: true)
657
+ puts @bp
658
+ ```
659
+
660
+
661
+ ![](/home/rbotafogo/desenv/galaaz/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png)<!-- -->
437
662
 
438
663
  # Conclusion
439
664