plotcli-py 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. CLAUDE.md +51 -0
  2. LICENSE +21 -0
  3. PKG-INFO +358 -0
  4. README.md +340 -0
  5. main.py +6 -0
  6. plotcli-original/.Rbuildignore +18 -0
  7. plotcli-original/.github/workflows/deploy_docs.yml +43 -0
  8. plotcli-original/.gitignore +46 -0
  9. plotcli-original/DESCRIPTION +25 -0
  10. plotcli-original/NAMESPACE +60 -0
  11. plotcli-original/NEWS.md +112 -0
  12. plotcli-original/R/ascii_escape.r +13 -0
  13. plotcli-original/R/canvas.r +586 -0
  14. plotcli-original/R/class_functions.r +114 -0
  15. plotcli-original/R/geom_registry.r +1376 -0
  16. plotcli-original/R/ggplotcli.r +234 -0
  17. plotcli-original/R/ggplotcli_helpers.r +1099 -0
  18. plotcli-original/R/helper_functions.r +351 -0
  19. plotcli-original/R/plotcli.r +963 -0
  20. plotcli-original/R/plotcli_grid.r +1 -0
  21. plotcli-original/R/plotcli_wrappers.r +416 -0
  22. plotcli-original/R/zzz.r +15 -0
  23. plotcli-original/README.md +192 -0
  24. plotcli-original/docs/ascii.png +0 -0
  25. plotcli-original/docs/bar.png +0 -0
  26. plotcli-original/docs/block.png +0 -0
  27. plotcli-original/docs/boxplot.png +0 -0
  28. plotcli-original/docs/density.png +0 -0
  29. plotcli-original/docs/facet.png +0 -0
  30. plotcli-original/docs/facet_grid.png +0 -0
  31. plotcli-original/docs/generate_png.sh +137 -0
  32. plotcli-original/docs/heatmap.png +0 -0
  33. plotcli-original/docs/histogram.png +0 -0
  34. plotcli-original/docs/line.png +0 -0
  35. plotcli-original/docs/noborder.png +0 -0
  36. plotcli-original/docs/scatter.png +0 -0
  37. plotcli-original/docs/showcase.R +182 -0
  38. plotcli-original/inst/doc/ggplotcli.R +231 -0
  39. plotcli-original/inst/doc/ggplotcli.Rmd +329 -0
  40. plotcli-original/inst/doc/ggplotcli.html +1078 -0
  41. plotcli-original/inst/doc/plotcli_class.R +98 -0
  42. plotcli-original/inst/doc/plotcli_class.Rmd +121 -0
  43. plotcli-original/inst/doc/plotcli_class.html +564 -0
  44. plotcli-original/inst/doc/plotcli_wrappers.R +35 -0
  45. plotcli-original/inst/doc/plotcli_wrappers.Rmd +62 -0
  46. plotcli-original/inst/doc/plotcli_wrappers.html +546 -0
  47. plotcli-original/man/AsciiCanvas.Rd +116 -0
  48. plotcli-original/man/BlockCanvas.Rd +132 -0
  49. plotcli-original/man/BrailleCanvas.Rd +146 -0
  50. plotcli-original/man/Canvas.Rd +492 -0
  51. plotcli-original/man/GeomRegistry.Rd +9 -0
  52. plotcli-original/man/add_legend_to_output.Rd +12 -0
  53. plotcli-original/man/braille_dot_bit.Rd +29 -0
  54. plotcli-original/man/braille_set_dot.Rd +21 -0
  55. plotcli-original/man/bresenham.Rd +27 -0
  56. plotcli-original/man/build_plot_output.Rd +28 -0
  57. plotcli-original/man/build_plot_output_v2.Rd +41 -0
  58. plotcli-original/man/cat_plot_matrix.Rd +17 -0
  59. plotcli-original/man/cbind.plotcli.Rd +19 -0
  60. plotcli-original/man/cbind_plots.Rd +17 -0
  61. plotcli-original/man/color_to_term.Rd +18 -0
  62. plotcli-original/man/create_canvas.Rd +21 -0
  63. plotcli-original/man/create_panel_scales.Rd +29 -0
  64. plotcli-original/man/create_scales.Rd +27 -0
  65. plotcli-original/man/dot-geom_registry.Rd +16 -0
  66. plotcli-original/man/draw_border.Rd +12 -0
  67. plotcli-original/man/draw_grid.Rd +12 -0
  68. plotcli-original/man/extract_legend_info.Rd +12 -0
  69. plotcli-original/man/extract_plot_labels.Rd +12 -0
  70. plotcli-original/man/extract_plot_style.Rd +12 -0
  71. plotcli-original/man/format_axis_label.Rd +18 -0
  72. plotcli-original/man/format_four_chars.Rd +21 -0
  73. plotcli-original/man/geom_area_handler.Rd +12 -0
  74. plotcli-original/man/geom_bar_handler.Rd +12 -0
  75. plotcli-original/man/geom_boxplot_handler.Rd +13 -0
  76. plotcli-original/man/geom_density_handler.Rd +12 -0
  77. plotcli-original/man/geom_histogram_handler.Rd +12 -0
  78. plotcli-original/man/geom_hline_handler.Rd +12 -0
  79. plotcli-original/man/geom_line_handler.Rd +12 -0
  80. plotcli-original/man/geom_path_handler.Rd +12 -0
  81. plotcli-original/man/geom_point_handler.Rd +12 -0
  82. plotcli-original/man/geom_rect_handler.Rd +12 -0
  83. plotcli-original/man/geom_segment_handler.Rd +12 -0
  84. plotcli-original/man/geom_smooth_handler.Rd +12 -0
  85. plotcli-original/man/geom_text_handler.Rd +12 -0
  86. plotcli-original/man/geom_vline_handler.Rd +12 -0
  87. plotcli-original/man/get_color_hue.Rd +18 -0
  88. plotcli-original/man/get_data_subset.Rd +23 -0
  89. plotcli-original/man/get_facet_info.Rd +18 -0
  90. plotcli-original/man/get_geom_handler.Rd +17 -0
  91. plotcli-original/man/get_term_colors.Rd +21 -0
  92. plotcli-original/man/ggplotcli.Rd +83 -0
  93. plotcli-original/man/init_color_mapping.Rd +15 -0
  94. plotcli-original/man/is_braille.Rd +20 -0
  95. plotcli-original/man/is_geom_registered.Rd +17 -0
  96. plotcli-original/man/list_registered_geoms.Rd +14 -0
  97. plotcli-original/man/make_colored.Rd +23 -0
  98. plotcli-original/man/make_unique_names.Rd +20 -0
  99. plotcli-original/man/normalize_data.Rd +27 -0
  100. plotcli-original/man/pclib.Rd +48 -0
  101. plotcli-original/man/pclibx.Rd +46 -0
  102. plotcli-original/man/pclid.Rd +44 -0
  103. plotcli-original/man/pclih.Rd +50 -0
  104. plotcli-original/man/pclil.Rd +48 -0
  105. plotcli-original/man/pclis.Rd +48 -0
  106. plotcli-original/man/pixel_to_braille.Rd +23 -0
  107. plotcli-original/man/plotcli.Rd +598 -0
  108. plotcli-original/man/plotcli_bar.Rd +48 -0
  109. plotcli-original/man/plotcli_box.Rd +46 -0
  110. plotcli-original/man/plotcli_density.Rd +44 -0
  111. plotcli-original/man/plotcli_histogram.Rd +50 -0
  112. plotcli-original/man/plotcli_line.Rd +48 -0
  113. plotcli-original/man/plotcli_options.Rd +18 -0
  114. plotcli-original/man/plotcli_scatter.Rd +48 -0
  115. plotcli-original/man/plus-.plotcli.Rd +19 -0
  116. plotcli-original/man/rbind.plotcli.Rd +19 -0
  117. plotcli-original/man/rbind_plots.Rd +17 -0
  118. plotcli-original/man/register_geom.Rd +21 -0
  119. plotcli-original/man/remove_color_codes.Rd +21 -0
  120. plotcli-original/man/render_faceted_plot.Rd +25 -0
  121. plotcli-original/man/render_single_panel.Rd +12 -0
  122. plotcli-original/man/safe_aes_name.Rd +18 -0
  123. plotcli-original/tests/testthat/test-new-geoms.R +136 -0
  124. plotcli-original/tests/testthat/test-plotcli.R +69 -0
  125. plotcli-original/tests/testthat.R +4 -0
  126. plotcli-original/vignettes/ggplotcli.Rmd +329 -0
  127. plotcli-original/vignettes/plotcli_class.R +98 -0
  128. plotcli-original/vignettes/plotcli_class.Rmd +121 -0
  129. plotcli-original/vignettes/plotcli_wrappers.R +35 -0
  130. plotcli-original/vignettes/plotcli_wrappers.Rmd +62 -0
  131. plotcli.egg-info/PKG-INFO +11 -0
  132. plotcli.egg-info/SOURCES.txt +7 -0
  133. plotcli.egg-info/dependency_links.txt +1 -0
  134. plotcli.egg-info/entry_points.txt +3 -0
  135. plotcli.egg-info/top_level.txt +1 -0
  136. plotcli.py +978 -0
  137. plotcli_py-0.1.0.dist-info/METADATA +358 -0
  138. plotcli_py-0.1.0.dist-info/RECORD +143 -0
  139. plotcli_py-0.1.0.dist-info/WHEEL +4 -0
  140. plotcli_py-0.1.0.dist-info/entry_points.txt +2 -0
  141. plotcli_py-0.1.0.dist-info/licenses/LICENSE +21 -0
  142. pyproject.toml +31 -0
  143. uv.lock +8 -0
@@ -0,0 +1,1078 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+
5
+ <head>
6
+
7
+ <meta charset="utf-8" />
8
+ <meta name="generator" content="pandoc" />
9
+ <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
10
+
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+
13
+ <meta name="author" content="Claas Heuer" />
14
+
15
+ <meta name="date" content="2026-02-09" />
16
+
17
+ <title>ggplotcli: Universal ggplot2 to Terminal Plotting</title>
18
+
19
+ <script>// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
20
+ // be compatible with the behavior of Pandoc < 2.8).
21
+ document.addEventListener('DOMContentLoaded', function(e) {
22
+ var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
23
+ var i, h, a;
24
+ for (i = 0; i < hs.length; i++) {
25
+ h = hs[i];
26
+ if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
27
+ a = h.attributes;
28
+ while (a.length > 0) h.removeAttribute(a[0].name);
29
+ }
30
+ });
31
+ </script>
32
+
33
+ <style type="text/css">
34
+ code{white-space: pre-wrap;}
35
+ span.smallcaps{font-variant: small-caps;}
36
+ span.underline{text-decoration: underline;}
37
+ div.column{display: inline-block; vertical-align: top; width: 50%;}
38
+ div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
39
+ ul.task-list{list-style: none;}
40
+ </style>
41
+
42
+
43
+
44
+ <style type="text/css">
45
+ code {
46
+ white-space: pre;
47
+ }
48
+ .sourceCode {
49
+ overflow: visible;
50
+ }
51
+ </style>
52
+ <style type="text/css" data-origin="pandoc">
53
+ html { -webkit-text-size-adjust: 100%; }
54
+ pre > code.sourceCode { white-space: pre; position: relative; }
55
+ pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
56
+ pre > code.sourceCode > span:empty { height: 1.2em; }
57
+ .sourceCode { overflow: visible; }
58
+ code.sourceCode > span { color: inherit; text-decoration: inherit; }
59
+ div.sourceCode { margin: 1em 0; }
60
+ pre.sourceCode { margin: 0; }
61
+ @media screen {
62
+ div.sourceCode { overflow: auto; }
63
+ }
64
+ @media print {
65
+ pre > code.sourceCode { white-space: pre-wrap; }
66
+ pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
67
+ }
68
+ pre.numberSource code
69
+ { counter-reset: source-line 0; }
70
+ pre.numberSource code > span
71
+ { position: relative; left: -4em; counter-increment: source-line; }
72
+ pre.numberSource code > span > a:first-child::before
73
+ { content: counter(source-line);
74
+ position: relative; left: -1em; text-align: right; vertical-align: baseline;
75
+ border: none; display: inline-block;
76
+ -webkit-touch-callout: none; -webkit-user-select: none;
77
+ -khtml-user-select: none; -moz-user-select: none;
78
+ -ms-user-select: none; user-select: none;
79
+ padding: 0 4px; width: 4em;
80
+ color: #aaaaaa;
81
+ }
82
+ pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
83
+ div.sourceCode
84
+ { }
85
+ @media screen {
86
+ pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
87
+ }
88
+ code span.al { color: #ff0000; font-weight: bold; }
89
+ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; }
90
+ code span.at { color: #7d9029; }
91
+ code span.bn { color: #40a070; }
92
+ code span.bu { color: #008000; }
93
+ code span.cf { color: #007020; font-weight: bold; }
94
+ code span.ch { color: #4070a0; }
95
+ code span.cn { color: #880000; }
96
+ code span.co { color: #60a0b0; font-style: italic; }
97
+ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; }
98
+ code span.do { color: #ba2121; font-style: italic; }
99
+ code span.dt { color: #902000; }
100
+ code span.dv { color: #40a070; }
101
+ code span.er { color: #ff0000; font-weight: bold; }
102
+ code span.ex { }
103
+ code span.fl { color: #40a070; }
104
+ code span.fu { color: #06287e; }
105
+ code span.im { color: #008000; font-weight: bold; }
106
+ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; }
107
+ code span.kw { color: #007020; font-weight: bold; }
108
+ code span.op { color: #666666; }
109
+ code span.ot { color: #007020; }
110
+ code span.pp { color: #bc7a00; }
111
+ code span.sc { color: #4070a0; }
112
+ code span.ss { color: #bb6688; }
113
+ code span.st { color: #4070a0; }
114
+ code span.va { color: #19177c; }
115
+ code span.vs { color: #4070a0; }
116
+ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; }
117
+ </style>
118
+ <script>
119
+ // apply pandoc div.sourceCode style to pre.sourceCode instead
120
+ (function() {
121
+ var sheets = document.styleSheets;
122
+ for (var i = 0; i < sheets.length; i++) {
123
+ if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
124
+ try { var rules = sheets[i].cssRules; } catch (e) { continue; }
125
+ var j = 0;
126
+ while (j < rules.length) {
127
+ var rule = rules[j];
128
+ // check if there is a div.sourceCode rule
129
+ if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") {
130
+ j++;
131
+ continue;
132
+ }
133
+ var style = rule.style.cssText;
134
+ // check if color or background-color is set
135
+ if (rule.style.color === '' && rule.style.backgroundColor === '') {
136
+ j++;
137
+ continue;
138
+ }
139
+ // replace div.sourceCode by a pre.sourceCode rule
140
+ sheets[i].deleteRule(j);
141
+ sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
142
+ }
143
+ }
144
+ })();
145
+ </script>
146
+
147
+
148
+
149
+
150
+ <style type="text/css">body {
151
+ background-color: #fff;
152
+ margin: 1em auto;
153
+ max-width: 700px;
154
+ overflow: visible;
155
+ padding-left: 2em;
156
+ padding-right: 2em;
157
+ font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
158
+ font-size: 14px;
159
+ line-height: 1.35;
160
+ }
161
+ #TOC {
162
+ clear: both;
163
+ margin: 0 0 10px 10px;
164
+ padding: 4px;
165
+ width: 400px;
166
+ border: 1px solid #CCCCCC;
167
+ border-radius: 5px;
168
+ background-color: #f6f6f6;
169
+ font-size: 13px;
170
+ line-height: 1.3;
171
+ }
172
+ #TOC .toctitle {
173
+ font-weight: bold;
174
+ font-size: 15px;
175
+ margin-left: 5px;
176
+ }
177
+ #TOC ul {
178
+ padding-left: 40px;
179
+ margin-left: -1.5em;
180
+ margin-top: 5px;
181
+ margin-bottom: 5px;
182
+ }
183
+ #TOC ul ul {
184
+ margin-left: -2em;
185
+ }
186
+ #TOC li {
187
+ line-height: 16px;
188
+ }
189
+ table {
190
+ margin: 1em auto;
191
+ border-width: 1px;
192
+ border-color: #DDDDDD;
193
+ border-style: outset;
194
+ border-collapse: collapse;
195
+ }
196
+ table th {
197
+ border-width: 2px;
198
+ padding: 5px;
199
+ border-style: inset;
200
+ }
201
+ table td {
202
+ border-width: 1px;
203
+ border-style: inset;
204
+ line-height: 18px;
205
+ padding: 5px 5px;
206
+ }
207
+ table, table th, table td {
208
+ border-left-style: none;
209
+ border-right-style: none;
210
+ }
211
+ table thead, table tr.even {
212
+ background-color: #f7f7f7;
213
+ }
214
+ p {
215
+ margin: 0.5em 0;
216
+ }
217
+ blockquote {
218
+ background-color: #f6f6f6;
219
+ padding: 0.25em 0.75em;
220
+ }
221
+ hr {
222
+ border-style: solid;
223
+ border: none;
224
+ border-top: 1px solid #777;
225
+ margin: 28px 0;
226
+ }
227
+ dl {
228
+ margin-left: 0;
229
+ }
230
+ dl dd {
231
+ margin-bottom: 13px;
232
+ margin-left: 13px;
233
+ }
234
+ dl dt {
235
+ font-weight: bold;
236
+ }
237
+ ul {
238
+ margin-top: 0;
239
+ }
240
+ ul li {
241
+ list-style: circle outside;
242
+ }
243
+ ul ul {
244
+ margin-bottom: 0;
245
+ }
246
+ pre, code {
247
+ background-color: #f7f7f7;
248
+ border-radius: 3px;
249
+ color: #333;
250
+ white-space: pre-wrap;
251
+ }
252
+ pre {
253
+ border-radius: 3px;
254
+ margin: 5px 0px 10px 0px;
255
+ padding: 10px;
256
+ }
257
+ pre:not([class]) {
258
+ background-color: #f7f7f7;
259
+ }
260
+ code {
261
+ font-family: Consolas, Monaco, 'Courier New', monospace;
262
+ font-size: 85%;
263
+ }
264
+ p > code, li > code {
265
+ padding: 2px 0px;
266
+ }
267
+ div.figure {
268
+ text-align: center;
269
+ }
270
+ img {
271
+ background-color: #FFFFFF;
272
+ padding: 2px;
273
+ border: 1px solid #DDDDDD;
274
+ border-radius: 3px;
275
+ border: 1px solid #CCCCCC;
276
+ margin: 0 5px;
277
+ }
278
+ h1 {
279
+ margin-top: 0;
280
+ font-size: 35px;
281
+ line-height: 40px;
282
+ }
283
+ h2 {
284
+ border-bottom: 4px solid #f7f7f7;
285
+ padding-top: 10px;
286
+ padding-bottom: 2px;
287
+ font-size: 145%;
288
+ }
289
+ h3 {
290
+ border-bottom: 2px solid #f7f7f7;
291
+ padding-top: 10px;
292
+ font-size: 120%;
293
+ }
294
+ h4 {
295
+ border-bottom: 1px solid #f7f7f7;
296
+ margin-left: 8px;
297
+ font-size: 105%;
298
+ }
299
+ h5, h6 {
300
+ border-bottom: 1px solid #ccc;
301
+ font-size: 105%;
302
+ }
303
+ a {
304
+ color: #0033dd;
305
+ text-decoration: none;
306
+ }
307
+ a:hover {
308
+ color: #6666ff; }
309
+ a:visited {
310
+ color: #800080; }
311
+ a:visited:hover {
312
+ color: #BB00BB; }
313
+ a[href^="http:"] {
314
+ text-decoration: underline; }
315
+ a[href^="https:"] {
316
+ text-decoration: underline; }
317
+
318
+ code > span.kw { color: #555; font-weight: bold; }
319
+ code > span.dt { color: #902000; }
320
+ code > span.dv { color: #40a070; }
321
+ code > span.bn { color: #d14; }
322
+ code > span.fl { color: #d14; }
323
+ code > span.ch { color: #d14; }
324
+ code > span.st { color: #d14; }
325
+ code > span.co { color: #888888; font-style: italic; }
326
+ code > span.ot { color: #007020; }
327
+ code > span.al { color: #ff0000; font-weight: bold; }
328
+ code > span.fu { color: #900; font-weight: bold; }
329
+ code > span.er { color: #a61717; background-color: #e3d2d2; }
330
+ </style>
331
+
332
+
333
+
334
+
335
+ </head>
336
+
337
+ <body>
338
+
339
+
340
+
341
+
342
+ <h1 class="title toc-ignore">ggplotcli: Universal ggplot2 to Terminal
343
+ Plotting</h1>
344
+ <h4 class="author">Claas Heuer</h4>
345
+ <h4 class="date">2026-02-09</h4>
346
+
347
+
348
+
349
+ <div id="introduction" class="section level2">
350
+ <h2>Introduction</h2>
351
+ <p><code>ggplotcli</code> is a universal converter that renders any
352
+ ggplot2 plot in the terminal using Unicode/ASCII characters. It
353
+ automatically extracts data, aesthetics, and styling from ggplot
354
+ objects, supporting 15+ geom types, faceting, color aesthetics, and
355
+ legends.</p>
356
+ </div>
357
+ <div id="basic-usage" class="section level2">
358
+ <h2>Basic Usage</h2>
359
+ <div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" tabindex="-1"></a><span class="fu">library</span>(plotcli)</span>
360
+ <span id="cb1-2"><a href="#cb1-2" tabindex="-1"></a><span class="co">#&gt; Loading required package: R6</span></span>
361
+ <span id="cb1-3"><a href="#cb1-3" tabindex="-1"></a><span class="co">#&gt; Loading required package: ggplot2</span></span>
362
+ <span id="cb1-4"><a href="#cb1-4" tabindex="-1"></a><span class="co">#&gt; plotcli loaded. Use plotcli_options() to set global options.</span></span>
363
+ <span id="cb1-5"><a href="#cb1-5" tabindex="-1"></a><span class="fu">library</span>(ggplot2)</span>
364
+ <span id="cb1-6"><a href="#cb1-6" tabindex="-1"></a></span>
365
+ <span id="cb1-7"><a href="#cb1-7" tabindex="-1"></a><span class="co"># Create a ggplot</span></span>
366
+ <span id="cb1-8"><a href="#cb1-8" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> wt, <span class="at">y =</span> mpg, <span class="at">color =</span> <span class="fu">factor</span>(cyl))) <span class="sc">+</span></span>
367
+ <span id="cb1-9"><a href="#cb1-9" tabindex="-1"></a> <span class="fu">geom_point</span>() <span class="sc">+</span></span>
368
+ <span id="cb1-10"><a href="#cb1-10" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;MPG vs Weight by Cylinders&quot;</span>)</span>
369
+ <span id="cb1-11"><a href="#cb1-11" tabindex="-1"></a></span>
370
+ <span id="cb1-12"><a href="#cb1-12" tabindex="-1"></a><span class="co"># Render in terminal</span></span>
371
+ <span id="cb1-13"><a href="#cb1-13" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">16</span>)</span>
372
+ <span id="cb1-14"><a href="#cb1-14" tabindex="-1"></a><span class="co">#&gt; </span></span>
373
+ <span id="cb1-15"><a href="#cb1-15" tabindex="-1"></a><span class="co">#&gt; MPG vs Weight by Cylinders </span></span>
374
+ <span id="cb1-16"><a href="#cb1-16" tabindex="-1"></a><span class="co">#&gt; 35.0 ⠄ </span></span>
375
+ <span id="cb1-17"><a href="#cb1-17" tabindex="-1"></a><span class="co">#&gt; ⠐ </span></span>
376
+ <span id="cb1-18"><a href="#cb1-18" tabindex="-1"></a><span class="co">#&gt; 30.0 ⠐⠐ </span></span>
377
+ <span id="cb1-19"><a href="#cb1-19" tabindex="-1"></a><span class="co">#&gt; ⠠ factor(cyl) </span></span>
378
+ <span id="cb1-20"><a href="#cb1-20" tabindex="-1"></a><span class="co">#&gt; m 25.0 ⠁ ⢀ * 4 </span></span>
379
+ <span id="cb1-21"><a href="#cb1-21" tabindex="-1"></a><span class="co">#&gt; p ⠄ ⠄ * 6 </span></span>
380
+ <span id="cb1-22"><a href="#cb1-22" tabindex="-1"></a><span class="co">#&gt; g 20.0 ⠐ ⠠ ⠐⠠ ⠐ * 8 </span></span>
381
+ <span id="cb1-23"><a href="#cb1-23" tabindex="-1"></a><span class="co">#&gt; ⠈ ⢰ ⠐ </span></span>
382
+ <span id="cb1-24"><a href="#cb1-24" tabindex="-1"></a><span class="co">#&gt; ⡀ ⠁ ⠄ </span></span>
383
+ <span id="cb1-25"><a href="#cb1-25" tabindex="-1"></a><span class="co">#&gt; 15.0 ⠈⠈⠆ ⠈ ⠂ </span></span>
384
+ <span id="cb1-26"><a href="#cb1-26" tabindex="-1"></a><span class="co">#&gt; ⠁ </span></span>
385
+ <span id="cb1-27"><a href="#cb1-27" tabindex="-1"></a><span class="co">#&gt; 10.0 ⠂ ⠂ </span></span>
386
+ <span id="cb1-28"><a href="#cb1-28" tabindex="-1"></a><span class="co">#&gt; 2.0 3.0 4.0 5.0 </span></span>
387
+ <span id="cb1-29"><a href="#cb1-29" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
388
+ <span id="cb1-30"><a href="#cb1-30" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
389
+ </div>
390
+ <div id="supported-geoms" class="section level2">
391
+ <h2>Supported Geoms</h2>
392
+ <div id="scatter-plots-geom_point" class="section level3">
393
+ <h3>Scatter Plots (geom_point)</h3>
394
+ <div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(iris, <span class="fu">aes</span>(<span class="at">x =</span> Sepal.Length, <span class="at">y =</span> Sepal.Width, <span class="at">color =</span> Species)) <span class="sc">+</span></span>
395
+ <span id="cb2-2"><a href="#cb2-2" tabindex="-1"></a> <span class="fu">geom_point</span>() <span class="sc">+</span></span>
396
+ <span id="cb2-3"><a href="#cb2-3" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Iris: Sepal Dimensions by Species&quot;</span>)</span>
397
+ <span id="cb2-4"><a href="#cb2-4" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">16</span>)</span>
398
+ <span id="cb2-5"><a href="#cb2-5" tabindex="-1"></a><span class="co">#&gt; </span></span>
399
+ <span id="cb2-6"><a href="#cb2-6" tabindex="-1"></a><span class="co">#&gt; Iris: Sepal Dimensions by Species </span></span>
400
+ <span id="cb2-7"><a href="#cb2-7" tabindex="-1"></a><span class="co">#&gt; S 4.5 ⠠ </span></span>
401
+ <span id="cb2-8"><a href="#cb2-8" tabindex="-1"></a><span class="co">#&gt; e ⡀ ⠄ </span></span>
402
+ <span id="cb2-9"><a href="#cb2-9" tabindex="-1"></a><span class="co">#&gt; p 4.0 ⢀ ⠂ </span></span>
403
+ <span id="cb2-10"><a href="#cb2-10" tabindex="-1"></a><span class="co">#&gt; a ⢐ ⢀⢀ ⠐ ⠐ ⠂ Species </span></span>
404
+ <span id="cb2-11"><a href="#cb2-11" tabindex="-1"></a><span class="co">#&gt; l 3.5 ⠁ ⠁⠨⠠ ⠄ ⠄ ⠁ * setosa </span></span>
405
+ <span id="cb2-12"><a href="#cb2-12" tabindex="-1"></a><span class="co">#&gt; . ⢀ ⡁⢀ ⠁ ⢨⠨ ⠁ ⠈ ⡀⠈ ⠁⠨⢀ ⡀ ⠠ ⡀⡀⢀ ⡀ * versicolor </span></span>
406
+ <span id="cb2-13"><a href="#cb2-13" tabindex="-1"></a><span class="co">#&gt; W 3.0 ⢀⢀ ⠂ ⡂⡂⢀ ⢀ ⡀⢀ ⡀⢀⢀ ⠐ ⡀⢀⢐ ⡀⠂ ⡀⡀ ⢀⢀ * virginica </span></span>
407
+ <span id="cb2-14"><a href="#cb2-14" tabindex="-1"></a><span class="co">#&gt; i ⠐ ⡂⢐ ⡀ ⠐⢐ ⡂⢐⢐ ⡀⠐ ⡀ ⠐⢀ ⢀ </span></span>
408
+ <span id="cb2-15"><a href="#cb2-15" tabindex="-1"></a><span class="co">#&gt; d 2.5 ⠁ ⠄⠁⠠ ⠅ ⠈⠠ ⠈⠈ ⠠ </span></span>
409
+ <span id="cb2-16"><a href="#cb2-16" tabindex="-1"></a><span class="co">#&gt; t ⠅ ⠈ ⠅⠁⠈ ⠈ ⠈ </span></span>
410
+ <span id="cb2-17"><a href="#cb2-17" tabindex="-1"></a><span class="co">#&gt; h ⠁ ⠈ ⠁ ⠐ ⠂⠈ </span></span>
411
+ <span id="cb2-18"><a href="#cb2-18" tabindex="-1"></a><span class="co">#&gt; 2.0 ⠐ </span></span>
412
+ <span id="cb2-19"><a href="#cb2-19" tabindex="-1"></a><span class="co">#&gt; 5.0 6.0 7.0 8.0 </span></span>
413
+ <span id="cb2-20"><a href="#cb2-20" tabindex="-1"></a><span class="co">#&gt; Sepal.Length </span></span>
414
+ <span id="cb2-21"><a href="#cb2-21" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
415
+ </div>
416
+ <div id="line-plots-geom_line" class="section level3">
417
+ <h3>Line Plots (geom_line)</h3>
418
+ <div class="sourceCode" id="cb3"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb3-1"><a href="#cb3-1" tabindex="-1"></a><span class="co"># Multiple colored lines</span></span>
419
+ <span id="cb3-2"><a href="#cb3-2" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
420
+ <span id="cb3-3"><a href="#cb3-3" tabindex="-1"></a> <span class="at">x =</span> <span class="fu">rep</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">30</span>, <span class="dv">2</span>),</span>
421
+ <span id="cb3-4"><a href="#cb3-4" tabindex="-1"></a> <span class="at">y =</span> <span class="fu">c</span>(<span class="fu">sin</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">30</span><span class="sc">/</span><span class="dv">4</span>) <span class="sc">*</span> <span class="dv">10</span>, <span class="fu">cos</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">30</span><span class="sc">/</span><span class="dv">4</span>) <span class="sc">*</span> <span class="dv">10</span>),</span>
422
+ <span id="cb3-5"><a href="#cb3-5" tabindex="-1"></a> <span class="at">type =</span> <span class="fu">rep</span>(<span class="fu">c</span>(<span class="st">&quot;sin&quot;</span>, <span class="st">&quot;cos&quot;</span>), <span class="at">each =</span> <span class="dv">30</span>)</span>
423
+ <span id="cb3-6"><a href="#cb3-6" tabindex="-1"></a>)</span>
424
+ <span id="cb3-7"><a href="#cb3-7" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(x, y, <span class="at">color =</span> type)) <span class="sc">+</span></span>
425
+ <span id="cb3-8"><a href="#cb3-8" tabindex="-1"></a> <span class="fu">geom_line</span>() <span class="sc">+</span></span>
426
+ <span id="cb3-9"><a href="#cb3-9" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Sine and Cosine Waves&quot;</span>)</span>
427
+ <span id="cb3-10"><a href="#cb3-10" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>)</span>
428
+ <span id="cb3-11"><a href="#cb3-11" tabindex="-1"></a><span class="co">#&gt; </span></span>
429
+ <span id="cb3-12"><a href="#cb3-12" tabindex="-1"></a><span class="co">#&gt; Sine and Cosine Waves </span></span>
430
+ <span id="cb3-13"><a href="#cb3-13" tabindex="-1"></a><span class="co">#&gt; 10.0 ⠠⢄⡀ ⣀⠤⠒⠢⠤⣀⡀ ⣀⠤⠔⠒⠤⠤⣀ ⣀⠄ </span></span>
431
+ <span id="cb3-14"><a href="#cb3-14" tabindex="-1"></a><span class="co">#&gt; ⠈⡱⢖⠉ ⠈⠑⠤⡀ ⣀⠔⠊ ⢉⠶⢎ type </span></span>
432
+ <span id="cb3-15"><a href="#cb3-15" tabindex="-1"></a><span class="co">#&gt; 5.0 ⡠⠊ ⠑⠢⡀ ⠈⠢⡀ ⢠⠊ ⣀⠔⠁ ⠣⡀ * cos </span></span>
433
+ <span id="cb3-16"><a href="#cb3-16" tabindex="-1"></a><span class="co">#&gt; y ⠈ ⠘⢄ ⠑⢄ ⢀⠔⠁ ⢠⠊ * sin </span></span>
434
+ <span id="cb3-17"><a href="#cb3-17" tabindex="-1"></a><span class="co">#&gt; 0 ⠑⢄ ⠑⠤⡀ ⢀⠔⠁ ⢀⠔⠁ </span></span>
435
+ <span id="cb3-18"><a href="#cb3-18" tabindex="-1"></a><span class="co">#&gt; -5.0 ⠑⠤⡀ ⠈⢆ ⢀⠔⠁ ⡰⠁ </span></span>
436
+ <span id="cb3-19"><a href="#cb3-19" tabindex="-1"></a><span class="co">#&gt; ⠈⠢⡀ ⡱⠶⣁ ⡠⠒⠉ </span></span>
437
+ <span id="cb3-20"><a href="#cb3-20" tabindex="-1"></a><span class="co">#&gt; -10.0 ⠈⠑⠒⠒⠤⠤⠒⠉ ⠉⠑⠒⠤⠔⠒⠉ </span></span>
438
+ <span id="cb3-21"><a href="#cb3-21" tabindex="-1"></a><span class="co">#&gt; 0 5.0 10.0 15.0 20.0 25.0 30.0 </span></span>
439
+ <span id="cb3-22"><a href="#cb3-22" tabindex="-1"></a><span class="co">#&gt; x </span></span>
440
+ <span id="cb3-23"><a href="#cb3-23" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
441
+ </div>
442
+ <div id="histograms-geom_histogram" class="section level3">
443
+ <h3>Histograms (geom_histogram)</h3>
444
+ <div class="sourceCode" id="cb4"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb4-1"><a href="#cb4-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> mpg, <span class="at">fill =</span> <span class="fu">factor</span>(cyl))) <span class="sc">+</span></span>
445
+ <span id="cb4-2"><a href="#cb4-2" tabindex="-1"></a> <span class="fu">geom_histogram</span>(<span class="at">bins =</span> <span class="dv">10</span>, <span class="at">position =</span> <span class="st">&quot;dodge&quot;</span>) <span class="sc">+</span></span>
446
+ <span id="cb4-3"><a href="#cb4-3" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;MPG Distribution by Cylinders&quot;</span>)</span>
447
+ <span id="cb4-4"><a href="#cb4-4" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>)</span>
448
+ <span id="cb4-5"><a href="#cb4-5" tabindex="-1"></a><span class="co">#&gt; </span></span>
449
+ <span id="cb4-6"><a href="#cb4-6" tabindex="-1"></a><span class="co">#&gt; MPG Distribution by Cylinders </span></span>
450
+ <span id="cb4-7"><a href="#cb4-7" tabindex="-1"></a><span class="co">#&gt; ⣶⣶ </span></span>
451
+ <span id="cb4-8"><a href="#cb4-8" tabindex="-1"></a><span class="co">#&gt; c 6.0 ⣿⣿ factor(cyl) </span></span>
452
+ <span id="cb4-9"><a href="#cb4-9" tabindex="-1"></a><span class="co">#&gt; o ⣿⣿ * 4 </span></span>
453
+ <span id="cb4-10"><a href="#cb4-10" tabindex="-1"></a><span class="co">#&gt; u 4.0 ⣿⣿ ⢰⣶⡆ * 6 </span></span>
454
+ <span id="cb4-11"><a href="#cb4-11" tabindex="-1"></a><span class="co">#&gt; n ⣿⣿ ⣤⣤⣤⡄⢸⣿⡇⢠⣤⣤ ⣤⣤ * 8 </span></span>
455
+ <span id="cb4-12"><a href="#cb4-12" tabindex="-1"></a><span class="co">#&gt; t 2.0 ⢠⣤⡄ ⣤⣤ ⣿⣿ ⣿⣿⣿⣧⣼⣿⡇⢸⣿⣿ ⢠⣤⡄ ⣿⣿ </span></span>
456
+ <span id="cb4-13"><a href="#cb4-13" tabindex="-1"></a><span class="co">#&gt; ⢸⣿⡇ ⣿⣿ ⣿⣿ ⣿⣿⣿⣿⣿⣿⡇⢸⣿⣿ ⢸⣿⡇ ⣿⣿ ⢠⣤⡄ </span></span>
457
+ <span id="cb4-14"><a href="#cb4-14" tabindex="-1"></a><span class="co">#&gt; 0 ⠠⠤⠤⠼⠿⠧⠤⠤⠿⠿⠤⠤⠤⠿⠿⠤⠿⠿⠿⠿⠿⠿⠧⠼⠿⠿⠤⠤⠼⠿⠧⠤⠤⠤⠤⠤⠤⠤⠿⠿⠤⠤⠼⠿⠧⠤⠤⠄ </span></span>
458
+ <span id="cb4-15"><a href="#cb4-15" tabindex="-1"></a><span class="co">#&gt; 10.0 15.0 20.0 25.0 30.0 35.0 </span></span>
459
+ <span id="cb4-16"><a href="#cb4-16" tabindex="-1"></a><span class="co">#&gt; mpg </span></span>
460
+ <span id="cb4-17"><a href="#cb4-17" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
461
+ </div>
462
+ <div id="density-plots-geom_density" class="section level3">
463
+ <h3>Density Plots (geom_density)</h3>
464
+ <div class="sourceCode" id="cb5"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb5-1"><a href="#cb5-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> mpg, <span class="at">color =</span> <span class="fu">factor</span>(cyl))) <span class="sc">+</span></span>
465
+ <span id="cb5-2"><a href="#cb5-2" tabindex="-1"></a> <span class="fu">geom_density</span>() <span class="sc">+</span></span>
466
+ <span id="cb5-3"><a href="#cb5-3" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;MPG Density by Cylinders&quot;</span>)</span>
467
+ <span id="cb5-4"><a href="#cb5-4" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>)</span>
468
+ <span id="cb5-5"><a href="#cb5-5" tabindex="-1"></a><span class="co">#&gt; </span></span>
469
+ <span id="cb5-6"><a href="#cb5-6" tabindex="-1"></a><span class="co">#&gt; MPG Density by Cylinders </span></span>
470
+ <span id="cb5-7"><a href="#cb5-7" tabindex="-1"></a><span class="co">#&gt; d 0.25 ⣠⢦ </span></span>
471
+ <span id="cb5-8"><a href="#cb5-8" tabindex="-1"></a><span class="co">#&gt; e 0.20 ⢠⠃⠈⣇ ⢀⡠⠞⠙⣆ factor(cyl) </span></span>
472
+ <span id="cb5-9"><a href="#cb5-9" tabindex="-1"></a><span class="co">#&gt; n ⡞ ⠸⡀ ⢠⠚⠉⠁ ⠸⡄ * 4 </span></span>
473
+ <span id="cb5-10"><a href="#cb5-10" tabindex="-1"></a><span class="co">#&gt; s 0.15 ⢠⠃ ⢣ ⢠⠃ ⢧ * 6 </span></span>
474
+ <span id="cb5-11"><a href="#cb5-11" tabindex="-1"></a><span class="co">#&gt; i 0.10 ⢀⡎ ⠈⢆⡎ ⠘⡄ * 8 </span></span>
475
+ <span id="cb5-12"><a href="#cb5-12" tabindex="-1"></a><span class="co">#&gt; t 0.05 ⠘⢦ ⢀⡞ ⡼⠳⠤⠖⠒⢦ ⢀⣠⠤⠖⢳⠒⠒⠒⠒⠒⠦⠤⠤⣄⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀ </span></span>
476
+ <span id="cb5-13"><a href="#cb5-13" tabindex="-1"></a><span class="co">#&gt; y ⠈⢣⡀⣠⠞ ⡰⠁ ⢀⣀⡤⠔⢻⡉ ⠈⢧ ⠈⠉⠉⠓⠂ </span></span>
477
+ <span id="cb5-14"><a href="#cb5-14" tabindex="-1"></a><span class="co">#&gt; 0 ⠠⠤⠤⠭⠥⠤⠤⠤⠴⠶⠒⠚⠓⠒⠉⠉ ⠙⠒⠦⠤⠤⠬⠷⠶⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠤⠄ </span></span>
478
+ <span id="cb5-15"><a href="#cb5-15" tabindex="-1"></a><span class="co">#&gt; 10.0 15.0 20.0 25.0 30.0 35.0 </span></span>
479
+ <span id="cb5-16"><a href="#cb5-16" tabindex="-1"></a><span class="co">#&gt; mpg </span></span>
480
+ <span id="cb5-17"><a href="#cb5-17" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
481
+ </div>
482
+ <div id="bar-charts-geom_col" class="section level3">
483
+ <h3>Bar Charts (geom_col)</h3>
484
+ <div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="#cb6-1" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
485
+ <span id="cb6-2"><a href="#cb6-2" tabindex="-1"></a> <span class="at">category =</span> <span class="fu">c</span>(<span class="st">&quot;A&quot;</span>, <span class="st">&quot;B&quot;</span>, <span class="st">&quot;C&quot;</span>, <span class="st">&quot;D&quot;</span>, <span class="st">&quot;E&quot;</span>, <span class="st">&quot;F&quot;</span>),</span>
486
+ <span id="cb6-3"><a href="#cb6-3" tabindex="-1"></a> <span class="at">value =</span> <span class="fu">c</span>(<span class="dv">25</span>, <span class="dv">45</span>, <span class="dv">30</span>, <span class="dv">60</span>, <span class="dv">35</span>, <span class="dv">50</span>)</span>
487
+ <span id="cb6-4"><a href="#cb6-4" tabindex="-1"></a>)</span>
488
+ <span id="cb6-5"><a href="#cb6-5" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="at">x =</span> category, <span class="at">y =</span> value, <span class="at">fill =</span> category)) <span class="sc">+</span></span>
489
+ <span id="cb6-6"><a href="#cb6-6" tabindex="-1"></a> <span class="fu">geom_col</span>() <span class="sc">+</span></span>
490
+ <span id="cb6-7"><a href="#cb6-7" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Category Values&quot;</span>)</span>
491
+ <span id="cb6-8"><a href="#cb6-8" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>)</span>
492
+ <span id="cb6-9"><a href="#cb6-9" tabindex="-1"></a><span class="co">#&gt; </span></span>
493
+ <span id="cb6-10"><a href="#cb6-10" tabindex="-1"></a><span class="co">#&gt; Category Values </span></span>
494
+ <span id="cb6-11"><a href="#cb6-11" tabindex="-1"></a><span class="co">#&gt; 60.0 ⣶⣶⣶⣶⣶⣶⣶⣶ category </span></span>
495
+ <span id="cb6-12"><a href="#cb6-12" tabindex="-1"></a><span class="co">#&gt; v 50.0 ⣿⣿⣿⣿⣿⣿⣿⣿ ⣤⣤⣤⣤⣤⣤⣤⣤ * A </span></span>
496
+ <span id="cb6-13"><a href="#cb6-13" tabindex="-1"></a><span class="co">#&gt; a 40.0 ⢸⣿⣿⣿⣿⣿⣿⣿⡇ ⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿ * B </span></span>
497
+ <span id="cb6-14"><a href="#cb6-14" tabindex="-1"></a><span class="co">#&gt; l 30.0 ⢸⣿⣿⣿⣿⣿⣿⣿⡇⣀⣀⣀⣀⣀⣀⣀⣀⣿⣿⣿⣿⣿⣿⣿⣿⢰⣶⣶⣶⣶⣶⣶⣶⡆⣿⣿⣿⣿⣿⣿⣿⣿ * C </span></span>
498
+ <span id="cb6-15"><a href="#cb6-15" tabindex="-1"></a><span class="co">#&gt; u ⣤⣤⣤⣤⣤⣤⣤⣤⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿ * D </span></span>
499
+ <span id="cb6-16"><a href="#cb6-16" tabindex="-1"></a><span class="co">#&gt; e 20.0 ⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿ * E </span></span>
500
+ <span id="cb6-17"><a href="#cb6-17" tabindex="-1"></a><span class="co">#&gt; 10.0 ⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢸⣿⣿⣿⣿⣿⣿⣿⡇⣿⣿⣿⣿⣿⣿⣿⣿ * F </span></span>
501
+ <span id="cb6-18"><a href="#cb6-18" tabindex="-1"></a><span class="co">#&gt; 0 ⠿⠿⠿⠿⠿⠿⠿⠿⠸⠿⠿⠿⠿⠿⠿⠿⠇⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠸⠿⠿⠿⠿⠿⠿⠿⠇⠿⠿⠿⠿⠿⠿⠿⠿ </span></span>
502
+ <span id="cb6-19"><a href="#cb6-19" tabindex="-1"></a><span class="co">#&gt; A B C D E F </span></span>
503
+ <span id="cb6-20"><a href="#cb6-20" tabindex="-1"></a><span class="co">#&gt; category </span></span>
504
+ <span id="cb6-21"><a href="#cb6-21" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
505
+ </div>
506
+ <div id="boxplots-geom_boxplot" class="section level3">
507
+ <h3>Boxplots (geom_boxplot)</h3>
508
+ <p>Boxplots are rendered with box-drawing characters by default, showing
509
+ whiskers, box (Q1-Q3), median line, and outliers:</p>
510
+ <div class="sourceCode" id="cb7"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb7-1"><a href="#cb7-1" tabindex="-1"></a><span class="fu">set.seed</span>(<span class="dv">42</span>)</span>
511
+ <span id="cb7-2"><a href="#cb7-2" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
512
+ <span id="cb7-3"><a href="#cb7-3" tabindex="-1"></a> <span class="at">group =</span> <span class="fu">factor</span>(<span class="fu">rep</span>(<span class="fu">paste0</span>(<span class="st">&quot;Group &quot;</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">6</span>), <span class="at">each =</span> <span class="dv">50</span>)),</span>
513
+ <span id="cb7-4"><a href="#cb7-4" tabindex="-1"></a> <span class="at">value =</span> <span class="fu">c</span>(<span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">10</span>, <span class="dv">3</span>), <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">5</span>, <span class="dv">2</span>), <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">8</span>, <span class="dv">4</span>),</span>
514
+ <span id="cb7-5"><a href="#cb7-5" tabindex="-1"></a> <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">6</span>, <span class="dv">2</span>), <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">12</span>, <span class="dv">3</span>), <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">7</span>, <span class="dv">2</span>))</span>
515
+ <span id="cb7-6"><a href="#cb7-6" tabindex="-1"></a>)</span>
516
+ <span id="cb7-7"><a href="#cb7-7" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="at">x =</span> group, <span class="at">y =</span> value, <span class="at">fill =</span> group)) <span class="sc">+</span></span>
517
+ <span id="cb7-8"><a href="#cb7-8" tabindex="-1"></a> <span class="fu">geom_boxplot</span>() <span class="sc">+</span></span>
518
+ <span id="cb7-9"><a href="#cb7-9" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Boxplot Colored by Group&quot;</span>, <span class="at">y =</span> <span class="st">&quot;Value&quot;</span>, <span class="at">x =</span> <span class="st">&quot;Group&quot;</span>)</span>
519
+ <span id="cb7-10"><a href="#cb7-10" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">80</span>, <span class="at">height =</span> <span class="dv">20</span>, <span class="at">boxplot_style =</span> <span class="st">&quot;ascii&quot;</span>)</span>
520
+ <span id="cb7-11"><a href="#cb7-11" tabindex="-1"></a><span class="co">#&gt; </span></span>
521
+ <span id="cb7-12"><a href="#cb7-12" tabindex="-1"></a><span class="co">#&gt; Boxplot Colored by Group </span></span>
522
+ <span id="cb7-13"><a href="#cb7-13" tabindex="-1"></a><span class="co">#&gt; * ─────── </span></span>
523
+ <span id="cb7-14"><a href="#cb7-14" tabindex="-1"></a><span class="co">#&gt; ─────── │ </span></span>
524
+ <span id="cb7-15"><a href="#cb7-15" tabindex="-1"></a><span class="co">#&gt; │ * │ </span></span>
525
+ <span id="cb7-16"><a href="#cb7-16" tabindex="-1"></a><span class="co">#&gt; 15.0 │ ┌───────┐ group </span></span>
526
+ <span id="cb7-17"><a href="#cb7-17" tabindex="-1"></a><span class="co">#&gt; │ ───*─── │ │ * Group 1 </span></span>
527
+ <span id="cb7-18"><a href="#cb7-18" tabindex="-1"></a><span class="co">#&gt; V ┌───────┐ │ │───────│ ─────── * Group 2 </span></span>
528
+ <span id="cb7-19"><a href="#cb7-19" tabindex="-1"></a><span class="co">#&gt; a │ │ │ └───────┘ │ * Group 3 </span></span>
529
+ <span id="cb7-20"><a href="#cb7-20" tabindex="-1"></a><span class="co">#&gt; l 10.0 │───────│ ┌───────┐ ─────── │ │ * Group 4 </span></span>
530
+ <span id="cb7-21"><a href="#cb7-21" tabindex="-1"></a><span class="co">#&gt; u └───────┘ ─────── │ │ ┌───────┐ │ ┌───────┐ * Group 5 </span></span>
531
+ <span id="cb7-22"><a href="#cb7-22" tabindex="-1"></a><span class="co">#&gt; e │ ┌───────┐ └───────┘ │───────│ ─────── │ │ * Group 6 </span></span>
532
+ <span id="cb7-23"><a href="#cb7-23" tabindex="-1"></a><span class="co">#&gt; 5.0 │ │───────│ │ └───────┘ └───────┘ </span></span>
533
+ <span id="cb7-24"><a href="#cb7-24" tabindex="-1"></a><span class="co">#&gt; │ └───────┘ │ │ │ </span></span>
534
+ <span id="cb7-25"><a href="#cb7-25" tabindex="-1"></a><span class="co">#&gt; ───*─── ─────── │ ─────── ─────── </span></span>
535
+ <span id="cb7-26"><a href="#cb7-26" tabindex="-1"></a><span class="co">#&gt; ─────── </span></span>
536
+ <span id="cb7-27"><a href="#cb7-27" tabindex="-1"></a><span class="co">#&gt; 0 * * </span></span>
537
+ <span id="cb7-28"><a href="#cb7-28" tabindex="-1"></a><span class="co">#&gt; </span></span>
538
+ <span id="cb7-29"><a href="#cb7-29" tabindex="-1"></a><span class="co">#&gt; Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 </span></span>
539
+ <span id="cb7-30"><a href="#cb7-30" tabindex="-1"></a><span class="co">#&gt; Group </span></span>
540
+ <span id="cb7-31"><a href="#cb7-31" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
541
+ <p>You can also use Braille rendering for boxplots:</p>
542
+ <div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">80</span>, <span class="at">height =</span> <span class="dv">20</span>, <span class="at">boxplot_style =</span> <span class="st">&quot;braille&quot;</span>)</span>
543
+ <span id="cb8-2"><a href="#cb8-2" tabindex="-1"></a><span class="co">#&gt; </span></span>
544
+ <span id="cb8-3"><a href="#cb8-3" tabindex="-1"></a><span class="co">#&gt; Boxplot Colored by Group </span></span>
545
+ <span id="cb8-4"><a href="#cb8-4" tabindex="-1"></a><span class="co">#&gt; ⡀ </span></span>
546
+ <span id="cb8-5"><a href="#cb8-5" tabindex="-1"></a><span class="co">#&gt; ⠒⠒⡖⠒⠂ </span></span>
547
+ <span id="cb8-6"><a href="#cb8-6" tabindex="-1"></a><span class="co">#&gt; ⠉⠉⡏⠉⠁ ⡇ </span></span>
548
+ <span id="cb8-7"><a href="#cb8-7" tabindex="-1"></a><span class="co">#&gt; 15.0 ⡇ ⠂ ⡇ group </span></span>
549
+ <span id="cb8-8"><a href="#cb8-8" tabindex="-1"></a><span class="co">#&gt; ⡇ ⠂ ⢰⠒⠒⠒⠒⠓⠒⠒⠒⢲ * Group 1 </span></span>
550
+ <span id="cb8-9"><a href="#cb8-9" tabindex="-1"></a><span class="co">#&gt; V ⢀⣀⣀⣀⣀⣇⣀⣀⣀⡀ ⠉⠉⡏⠉⠁ ⢸ ⢸ ⢀⣀⣀⣀⣀ * Group 2 </span></span>
551
+ <span id="cb8-10"><a href="#cb8-10" tabindex="-1"></a><span class="co">#&gt; a ⢸ ⡇ ⡇ ⢸⠉⠉⠉⠉⠉⠉⠉⠉⢹ ⢸ * Group 3 </span></span>
552
+ <span id="cb8-11"><a href="#cb8-11" tabindex="-1"></a><span class="co">#&gt; l 10.0 ⢸⠒⠒⠒⠒⠒⠒⠒⠒⡇ ⡇ ⠐⠒⢲⠒⠒ ⠘⠒⠒⠒⠒⡖⠒⠒⠒⠚ ⢸ * Group 4 </span></span>
553
+ <span id="cb8-12"><a href="#cb8-12" tabindex="-1"></a><span class="co">#&gt; u ⠸⠤⠤⠤⠤⡤⠤⠤⠤⠇ ⠠⠤⢤⠤⠤ ⢰⠒⠒⠒⠒⠓⠒⠒⠒⢲ ⢸ ⡇ ⢰⠒⠒⠒⠚⠒⠒⠒⠒⡆ * Group 5 </span></span>
554
+ <span id="cb8-13"><a href="#cb8-13" tabindex="-1"></a><span class="co">#&gt; e ⡇ ⣀⣀⣀⣀⣸⣀⣀⣀⣀⡀ ⢸⠒⠒⠒⠒⠒⠒⠒⠒⢺ ⡖⠒⠒⠒⠚⠒⠒⠒⠒⡆ ⡇ ⢸⠒⠒⠒⠒⠒⠒⠒⠒⡇ * Group 6 </span></span>
555
+ <span id="cb8-14"><a href="#cb8-14" tabindex="-1"></a><span class="co">#&gt; 5.0 ⡇ ⡗⠒⠒⠒⠒⠒⠒⠒⠒⡇ ⠘⠒⠒⠒⠒⡖⠒⠒⠒⠚ ⣏⣉⣉⣉⣉⣉⣉⣉⣉⡇ ⠉⠉⠉⠉⠁ ⠘⠒⠒⠒⢲⠒⠒⠒⠒⠃ </span></span>
556
+ <span id="cb8-15"><a href="#cb8-15" tabindex="-1"></a><span class="co">#&gt; ⡇ ⠧⠤⠤⠤⢤⠤⠤⠤⠤⠇ ⡇ ⢸ ⢸ </span></span>
557
+ <span id="cb8-16"><a href="#cb8-16" tabindex="-1"></a><span class="co">#&gt; ⠤⠤⡧⠤⠄ ⢀⣀⣸⣀⣀ ⡇ ⠠⠤⠼⠤⠤ ⢸ </span></span>
558
+ <span id="cb8-17"><a href="#cb8-17" tabindex="-1"></a><span class="co">#&gt; ⠒⠒⠓⠒⠂ ⠐⠒⠚⠒⠒ </span></span>
559
+ <span id="cb8-18"><a href="#cb8-18" tabindex="-1"></a><span class="co">#&gt; 0 ⠄ </span></span>
560
+ <span id="cb8-19"><a href="#cb8-19" tabindex="-1"></a><span class="co">#&gt; ⠈ </span></span>
561
+ <span id="cb8-20"><a href="#cb8-20" tabindex="-1"></a><span class="co">#&gt; Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 </span></span>
562
+ <span id="cb8-21"><a href="#cb8-21" tabindex="-1"></a><span class="co">#&gt; Group </span></span>
563
+ <span id="cb8-22"><a href="#cb8-22" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
564
+ </div>
565
+ </div>
566
+ <div id="combining-multiple-geoms" class="section level2">
567
+ <h2>Combining Multiple Geoms</h2>
568
+ <div class="sourceCode" id="cb9"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb9-1"><a href="#cb9-1" tabindex="-1"></a><span class="co"># Histogram with density overlay</span></span>
569
+ <span id="cb9-2"><a href="#cb9-2" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> mpg)) <span class="sc">+</span></span>
570
+ <span id="cb9-3"><a href="#cb9-3" tabindex="-1"></a> <span class="fu">geom_histogram</span>(<span class="fu">aes</span>(<span class="at">y =</span> <span class="fu">after_stat</span>(density)), <span class="at">bins =</span> <span class="dv">10</span>, <span class="at">fill =</span> <span class="st">&quot;gray&quot;</span>) <span class="sc">+</span></span>
571
+ <span id="cb9-4"><a href="#cb9-4" tabindex="-1"></a> <span class="fu">geom_density</span>(<span class="at">color =</span> <span class="st">&quot;red&quot;</span>) <span class="sc">+</span></span>
572
+ <span id="cb9-5"><a href="#cb9-5" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Histogram with Density Overlay&quot;</span>)</span>
573
+ <span id="cb9-6"><a href="#cb9-6" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>)</span>
574
+ <span id="cb9-7"><a href="#cb9-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
575
+ <span id="cb9-8"><a href="#cb9-8" tabindex="-1"></a><span class="co">#&gt; Histogram with Density Overlay </span></span>
576
+ <span id="cb9-9"><a href="#cb9-9" tabindex="-1"></a><span class="co">#&gt; d ⢰⣶⣶⣶⣶⣶ </span></span>
577
+ <span id="cb9-10"><a href="#cb9-10" tabindex="-1"></a><span class="co">#&gt; e 0.08 ⢸⣿⣿⣿⣿⣿⣶⣶⣶⣶⣶⣶⣶⣶⣶ </span></span>
578
+ <span id="cb9-11"><a href="#cb9-11" tabindex="-1"></a><span class="co">#&gt; n 0.06 ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ </span></span>
579
+ <span id="cb9-12"><a href="#cb9-12" tabindex="-1"></a><span class="co">#&gt; s ⢀⡴⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠑⢦⡀ </span></span>
580
+ <span id="cb9-13"><a href="#cb9-13" tabindex="-1"></a><span class="co">#&gt; i 0.04 ⢀⡴⠋ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣤⣭⣷⣤⡀ ⣤⣤⣤⣤⣤ </span></span>
581
+ <span id="cb9-14"><a href="#cb9-14" tabindex="-1"></a><span class="co">#&gt; t 0.02 ⢠⣤⣤⣤⣾⣥⣤⣤⣤⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣭⣷⣦⣤⣄⣀⣀⣀⣀⣿⣿⣿⣿⣿ </span></span>
582
+ <span id="cb9-15"><a href="#cb9-15" tabindex="-1"></a><span class="co">#&gt; y ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇ ⣿⣿⣿⣿⣿⣽⣶⣦⣤⡄ </span></span>
583
+ <span id="cb9-16"><a href="#cb9-16" tabindex="-1"></a><span class="co">#&gt; 0 ⠸⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠧⠤⠤⠤⠤⠿⠿⠿⠿⠿⠿⠿⠿⠿⠇ </span></span>
584
+ <span id="cb9-17"><a href="#cb9-17" tabindex="-1"></a><span class="co">#&gt; 10.0 15.0 20.0 25.0 30.0 35.0 </span></span>
585
+ <span id="cb9-18"><a href="#cb9-18" tabindex="-1"></a><span class="co">#&gt; mpg </span></span>
586
+ <span id="cb9-19"><a href="#cb9-19" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
587
+ <div class="sourceCode" id="cb10"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb10-1"><a href="#cb10-1" tabindex="-1"></a><span class="co"># Points with smooth line</span></span>
588
+ <span id="cb10-2"><a href="#cb10-2" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> wt, <span class="at">y =</span> mpg)) <span class="sc">+</span></span>
589
+ <span id="cb10-3"><a href="#cb10-3" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">color =</span> <span class="st">&quot;gray&quot;</span>) <span class="sc">+</span></span>
590
+ <span id="cb10-4"><a href="#cb10-4" tabindex="-1"></a> <span class="fu">geom_smooth</span>(<span class="at">method =</span> <span class="st">&quot;loess&quot;</span>, <span class="at">color =</span> <span class="st">&quot;red&quot;</span>) <span class="sc">+</span></span>
591
+ <span id="cb10-5"><a href="#cb10-5" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Scatter with LOESS Smooth&quot;</span>)</span>
592
+ <span id="cb10-6"><a href="#cb10-6" tabindex="-1"></a><span class="fu">suppressMessages</span>(<span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">12</span>))</span>
593
+ <span id="cb10-7"><a href="#cb10-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
594
+ <span id="cb10-8"><a href="#cb10-8" tabindex="-1"></a><span class="co">#&gt; Scatter with LOESS Smooth </span></span>
595
+ <span id="cb10-9"><a href="#cb10-9" tabindex="-1"></a><span class="co">#&gt; </span></span>
596
+ <span id="cb10-10"><a href="#cb10-10" tabindex="-1"></a><span class="co">#&gt; 35.0 ⢐⢤⣀⣀⠁ ⠐ </span></span>
597
+ <span id="cb10-11"><a href="#cb10-11" tabindex="-1"></a><span class="co">#&gt; m 30.0 ⠉⠲⠢⢄⡀ </span></span>
598
+ <span id="cb10-12"><a href="#cb10-12" tabindex="-1"></a><span class="co">#&gt; p 25.0 ⠉⠉⡒⠤⣀⣀ ⡐ </span></span>
599
+ <span id="cb10-13"><a href="#cb10-13" tabindex="-1"></a><span class="co">#&gt; g 20.0 ⠈ ⠐⠉⠩⠙⠒⠒⠢⠬⢄⣀⣠ ⠠ </span></span>
600
+ <span id="cb10-14"><a href="#cb10-14" tabindex="-1"></a><span class="co">#&gt; 15.0 ⠄ ⢈⠩⡒⠒⢣⠤⠤⢄⣂⣀⣀ ⡀ </span></span>
601
+ <span id="cb10-15"><a href="#cb10-15" tabindex="-1"></a><span class="co">#&gt; 10.0 ⠁ ⠉⠉⠉⠉⠑⠒⠒⠒⠒⠢⠤⡤⠤⡄ </span></span>
602
+ <span id="cb10-16"><a href="#cb10-16" tabindex="-1"></a><span class="co">#&gt; </span></span>
603
+ <span id="cb10-17"><a href="#cb10-17" tabindex="-1"></a><span class="co">#&gt; 2.0 3.0 4.0 5.0 </span></span>
604
+ <span id="cb10-18"><a href="#cb10-18" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
605
+ <span id="cb10-19"><a href="#cb10-19" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
606
+ </div>
607
+ <div id="faceting" class="section level2">
608
+ <h2>Faceting</h2>
609
+ <div id="facet_wrap-with-color-aesthetics" class="section level3">
610
+ <h3>facet_wrap with Color Aesthetics</h3>
611
+ <p>Faceting works seamlessly with color/fill aesthetics and legends:</p>
612
+ <div class="sourceCode" id="cb11"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb11-1"><a href="#cb11-1" tabindex="-1"></a>mtcars<span class="sc">$</span>cyl_fac <span class="ot">&lt;-</span> <span class="fu">factor</span>(mtcars<span class="sc">$</span>cyl)</span>
613
+ <span id="cb11-2"><a href="#cb11-2" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> wt, <span class="at">y =</span> mpg, <span class="at">color =</span> cyl_fac)) <span class="sc">+</span></span>
614
+ <span id="cb11-3"><a href="#cb11-3" tabindex="-1"></a> <span class="fu">geom_point</span>() <span class="sc">+</span></span>
615
+ <span id="cb11-4"><a href="#cb11-4" tabindex="-1"></a> <span class="fu">facet_wrap</span>(<span class="sc">~</span>cyl_fac) <span class="sc">+</span></span>
616
+ <span id="cb11-5"><a href="#cb11-5" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;MPG vs Weight: Faceted by Cylinders&quot;</span>)</span>
617
+ <span id="cb11-6"><a href="#cb11-6" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">75</span>, <span class="at">height =</span> <span class="dv">16</span>)</span>
618
+ <span id="cb11-7"><a href="#cb11-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
619
+ <span id="cb11-8"><a href="#cb11-8" tabindex="-1"></a><span class="co">#&gt; MPG vs Weight: Faceted by Cylinders </span></span>
620
+ <span id="cb11-9"><a href="#cb11-9" tabindex="-1"></a><span class="co">#&gt; 4, 1 6, 1 8, 1 </span></span>
621
+ <span id="cb11-10"><a href="#cb11-10" tabindex="-1"></a><span class="co">#&gt; ⠠ </span></span>
622
+ <span id="cb11-11"><a href="#cb11-11" tabindex="-1"></a><span class="co">#&gt; ⣀ ⠁ </span></span>
623
+ <span id="cb11-12"><a href="#cb11-12" tabindex="-1"></a><span class="co">#&gt; 30.0 cyl_fac </span></span>
624
+ <span id="cb11-13"><a href="#cb11-13" tabindex="-1"></a><span class="co">#&gt; ⠁⠄ * 4 </span></span>
625
+ <span id="cb11-14"><a href="#cb11-14" tabindex="-1"></a><span class="co">#&gt; m ⡀ ⢀⠁ * 6 </span></span>
626
+ <span id="cb11-15"><a href="#cb11-15" tabindex="-1"></a><span class="co">#&gt; p 20.0 ⠈ ⠂ ⠂⡐ ⠂ * 8 </span></span>
627
+ <span id="cb11-16"><a href="#cb11-16" tabindex="-1"></a><span class="co">#&gt; g ⠅ ⠂⢀⠁ </span></span>
628
+ <span id="cb11-17"><a href="#cb11-17" tabindex="-1"></a><span class="co">#&gt; ⠂⢤⠠ ⠁ ⡀ </span></span>
629
+ <span id="cb11-18"><a href="#cb11-18" tabindex="-1"></a><span class="co">#&gt; ⠂ </span></span>
630
+ <span id="cb11-19"><a href="#cb11-19" tabindex="-1"></a><span class="co">#&gt; 10.0 ⠐⠐ </span></span>
631
+ <span id="cb11-20"><a href="#cb11-20" tabindex="-1"></a><span class="co">#&gt; 2.0 4.0 2.0 4.0 2.0 4.0 </span></span>
632
+ <span id="cb11-21"><a href="#cb11-21" tabindex="-1"></a><span class="co">#&gt; </span></span>
633
+ <span id="cb11-22"><a href="#cb11-22" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
634
+ <span id="cb11-23"><a href="#cb11-23" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
635
+ </div>
636
+ <div id="facet_grid" class="section level3">
637
+ <h3>facet_grid</h3>
638
+ <div class="sourceCode" id="cb12"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb12-1"><a href="#cb12-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> wt, <span class="at">y =</span> mpg, <span class="at">color =</span> <span class="fu">factor</span>(gear))) <span class="sc">+</span></span>
639
+ <span id="cb12-2"><a href="#cb12-2" tabindex="-1"></a> <span class="fu">geom_point</span>() <span class="sc">+</span></span>
640
+ <span id="cb12-3"><a href="#cb12-3" tabindex="-1"></a> <span class="fu">facet_grid</span>(am <span class="sc">~</span> cyl) <span class="sc">+</span></span>
641
+ <span id="cb12-4"><a href="#cb12-4" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;MPG: AM (rows) x Cylinders (cols)&quot;</span>)</span>
642
+ <span id="cb12-5"><a href="#cb12-5" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">80</span>, <span class="at">height =</span> <span class="dv">20</span>)</span>
643
+ <span id="cb12-6"><a href="#cb12-6" tabindex="-1"></a><span class="co">#&gt; </span></span>
644
+ <span id="cb12-7"><a href="#cb12-7" tabindex="-1"></a><span class="co">#&gt; MPG: AM (rows) x Cylinders (cols) </span></span>
645
+ <span id="cb12-8"><a href="#cb12-8" tabindex="-1"></a><span class="co">#&gt; 0, 4, 1 0, 6, 1 0, 8, 1 </span></span>
646
+ <span id="cb12-9"><a href="#cb12-9" tabindex="-1"></a><span class="co">#&gt; </span></span>
647
+ <span id="cb12-10"><a href="#cb12-10" tabindex="-1"></a><span class="co">#&gt; 30.0 </span></span>
648
+ <span id="cb12-11"><a href="#cb12-11" tabindex="-1"></a><span class="co">#&gt; ⢀⠂ </span></span>
649
+ <span id="cb12-12"><a href="#cb12-12" tabindex="-1"></a><span class="co">#&gt; 20.0 ⠁ ⠁⡄ ⡀ ⠄ </span></span>
650
+ <span id="cb12-13"><a href="#cb12-13" tabindex="-1"></a><span class="co">#&gt; ⠔⠌⡄⠐ ⠄ factor(gear) </span></span>
651
+ <span id="cb12-14"><a href="#cb12-14" tabindex="-1"></a><span class="co">#&gt; m 10.0 ⠠⠠ * 3 </span></span>
652
+ <span id="cb12-15"><a href="#cb12-15" tabindex="-1"></a><span class="co">#&gt; p 1, 4, 1 1, 6, 1 1, 8, 1 * 4 </span></span>
653
+ <span id="cb12-16"><a href="#cb12-16" tabindex="-1"></a><span class="co">#&gt; g ⠐ ⠠ * 5 </span></span>
654
+ <span id="cb12-17"><a href="#cb12-17" tabindex="-1"></a><span class="co">#&gt; 30.0 ⠉ ⡀ </span></span>
655
+ <span id="cb12-18"><a href="#cb12-18" tabindex="-1"></a><span class="co">#&gt; ⠈⡀ </span></span>
656
+ <span id="cb12-19"><a href="#cb12-19" tabindex="-1"></a><span class="co">#&gt; 20.0 ⠈ ⠢⠂ </span></span>
657
+ <span id="cb12-20"><a href="#cb12-20" tabindex="-1"></a><span class="co">#&gt; ⠐ ⠄ </span></span>
658
+ <span id="cb12-21"><a href="#cb12-21" tabindex="-1"></a><span class="co">#&gt; 10.0 </span></span>
659
+ <span id="cb12-22"><a href="#cb12-22" tabindex="-1"></a><span class="co">#&gt; 2.0 4.0 2.0 4.0 2.0 4.0 </span></span>
660
+ <span id="cb12-23"><a href="#cb12-23" tabindex="-1"></a><span class="co">#&gt; </span></span>
661
+ <span id="cb12-24"><a href="#cb12-24" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
662
+ <span id="cb12-25"><a href="#cb12-25" tabindex="-1"></a><span class="co">#&gt; </span></span>
663
+ <span id="cb12-26"><a href="#cb12-26" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
664
+ </div>
665
+ </div>
666
+ <div id="styling-options" class="section level2">
667
+ <h2>Styling Options</h2>
668
+ <div id="borders-and-grid-lines" class="section level3">
669
+ <h3>Borders and Grid Lines</h3>
670
+ <div class="sourceCode" id="cb13"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb13-1"><a href="#cb13-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> hp, <span class="at">y =</span> qsec)) <span class="sc">+</span></span>
671
+ <span id="cb13-2"><a href="#cb13-2" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">color =</span> <span class="st">&quot;cyan&quot;</span>) <span class="sc">+</span></span>
672
+ <span id="cb13-3"><a href="#cb13-3" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Quarter Mile Time vs HP&quot;</span>)</span>
673
+ <span id="cb13-4"><a href="#cb13-4" tabindex="-1"></a></span>
674
+ <span id="cb13-5"><a href="#cb13-5" tabindex="-1"></a><span class="co"># With border</span></span>
675
+ <span id="cb13-6"><a href="#cb13-6" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">55</span>, <span class="at">height =</span> <span class="dv">12</span>, <span class="at">border =</span> <span class="cn">TRUE</span>)</span>
676
+ <span id="cb13-7"><a href="#cb13-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
677
+ <span id="cb13-8"><a href="#cb13-8" tabindex="-1"></a><span class="co">#&gt; Quarter Mile Time vs HP </span></span>
678
+ <span id="cb13-9"><a href="#cb13-9" tabindex="-1"></a><span class="co">#&gt; ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ </span></span>
679
+ <span id="cb13-10"><a href="#cb13-10" tabindex="-1"></a><span class="co">#&gt; 22.0 ⡇ ⠠ ⢸ </span></span>
680
+ <span id="cb13-11"><a href="#cb13-11" tabindex="-1"></a><span class="co">#&gt; q ⡇ ⢸ </span></span>
681
+ <span id="cb13-12"><a href="#cb13-12" tabindex="-1"></a><span class="co">#&gt; s 20.0 ⡇ ⢲ ⠂⠡ ⢀ ⢸ </span></span>
682
+ <span id="cb13-13"><a href="#cb13-13" tabindex="-1"></a><span class="co">#&gt; e 18.0 ⡇ ⠈ ⠁ ⢈ ⠈ ⡀ ⢀⠰ ⠂⠐ ⠠ ⢸ </span></span>
683
+ <span id="cb13-14"><a href="#cb13-14" tabindex="-1"></a><span class="co">#&gt; c ⡇ ⠁ ⠐⠁ ⠁ ⢀ ⢠ ⢸ </span></span>
684
+ <span id="cb13-15"><a href="#cb13-15" tabindex="-1"></a><span class="co">#&gt; 16.0 ⡇ ⠂ ⠂ ⢸ </span></span>
685
+ <span id="cb13-16"><a href="#cb13-16" tabindex="-1"></a><span class="co">#&gt; ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ </span></span>
686
+ <span id="cb13-17"><a href="#cb13-17" tabindex="-1"></a><span class="co">#&gt; 50.0 100 150 200 250 300 </span></span>
687
+ <span id="cb13-18"><a href="#cb13-18" tabindex="-1"></a><span class="co">#&gt; hp </span></span>
688
+ <span id="cb13-19"><a href="#cb13-19" tabindex="-1"></a><span class="co">#&gt; </span></span>
689
+ <span id="cb13-20"><a href="#cb13-20" tabindex="-1"></a></span>
690
+ <span id="cb13-21"><a href="#cb13-21" tabindex="-1"></a><span class="co"># With grid</span></span>
691
+ <span id="cb13-22"><a href="#cb13-22" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">55</span>, <span class="at">height =</span> <span class="dv">12</span>, <span class="at">grid =</span> <span class="st">&quot;major&quot;</span>)</span>
692
+ <span id="cb13-23"><a href="#cb13-23" tabindex="-1"></a><span class="co">#&gt; </span></span>
693
+ <span id="cb13-24"><a href="#cb13-24" tabindex="-1"></a><span class="co">#&gt; Quarter Mile Time vs HP </span></span>
694
+ <span id="cb13-25"><a href="#cb13-25" tabindex="-1"></a><span class="co">#&gt; ⡇ ⠐⢸ ⡇ ⡇ ⢸ ⡇ </span></span>
695
+ <span id="cb13-26"><a href="#cb13-26" tabindex="-1"></a><span class="co">#&gt; 22.0 ⠉⠉⡏⠉⠉⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⠉ </span></span>
696
+ <span id="cb13-27"><a href="#cb13-27" tabindex="-1"></a><span class="co">#&gt; q ⣀⣀⣇⣀⣀⣀⣀⣀⣀⣸⣄⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣀ </span></span>
697
+ <span id="cb13-28"><a href="#cb13-28" tabindex="-1"></a><span class="co">#&gt; s 20.0 ⡇ ⡂ ⢸ ⠂⢀ ⡇ ⡇ ⢸ ⡇ </span></span>
698
+ <span id="cb13-29"><a href="#cb13-29" tabindex="-1"></a><span class="co">#&gt; e 18.0 ⠤⠤⡧⠤⠤⠤⠤⠤⠥⢼⠬⠤⠴⠤⠤⠤⠤⡧⠤⠤⠤⡤⠤⠤⡧⠤⠤⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⠤⠤ </span></span>
699
+ <span id="cb13-30"><a href="#cb13-30" tabindex="-1"></a><span class="co">#&gt; c ⡇ ⠄⢸ ⡆ ⡇ ⠐⠁ ⡇ ⠈ ⢸ ⡇ </span></span>
700
+ <span id="cb13-31"><a href="#cb13-31" tabindex="-1"></a><span class="co">#&gt; 16.0 ⠒⠒⡗⠒⠒⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠲⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⣺⠒⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒ </span></span>
701
+ <span id="cb13-32"><a href="#cb13-32" tabindex="-1"></a><span class="co">#&gt; ⡇ ⢸ ⡇ ⡇ ⢸ ⠄ ⡇ ⠐ </span></span>
702
+ <span id="cb13-33"><a href="#cb13-33" tabindex="-1"></a><span class="co">#&gt; 50.0 100 150 200 250 300 </span></span>
703
+ <span id="cb13-34"><a href="#cb13-34" tabindex="-1"></a><span class="co">#&gt; hp </span></span>
704
+ <span id="cb13-35"><a href="#cb13-35" tabindex="-1"></a><span class="co">#&gt; </span></span>
705
+ <span id="cb13-36"><a href="#cb13-36" tabindex="-1"></a></span>
706
+ <span id="cb13-37"><a href="#cb13-37" tabindex="-1"></a><span class="co"># Both</span></span>
707
+ <span id="cb13-38"><a href="#cb13-38" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">55</span>, <span class="at">height =</span> <span class="dv">12</span>, <span class="at">border =</span> <span class="cn">TRUE</span>, <span class="at">grid =</span> <span class="st">&quot;major&quot;</span>)</span>
708
+ <span id="cb13-39"><a href="#cb13-39" tabindex="-1"></a><span class="co">#&gt; </span></span>
709
+ <span id="cb13-40"><a href="#cb13-40" tabindex="-1"></a><span class="co">#&gt; Quarter Mile Time vs HP </span></span>
710
+ <span id="cb13-41"><a href="#cb13-41" tabindex="-1"></a><span class="co">#&gt; ⡏⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⠉⢹ </span></span>
711
+ <span id="cb13-42"><a href="#cb13-42" tabindex="-1"></a><span class="co">#&gt; 22.0 ⡇ ⡇ ⠠⡇ ⡇ ⡇ ⡇ ⡇ ⢸ </span></span>
712
+ <span id="cb13-43"><a href="#cb13-43" tabindex="-1"></a><span class="co">#&gt; q ⡏⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⠉⠉⢹ </span></span>
713
+ <span id="cb13-44"><a href="#cb13-44" tabindex="-1"></a><span class="co">#&gt; s 20.0 ⡗⠒⠒⡗⠒⢲⠒⠒⠒⠒⡗⠳⠒⢒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⢺ </span></span>
714
+ <span id="cb13-45"><a href="#cb13-45" tabindex="-1"></a><span class="co">#&gt; e 18.0 ⡗⠒⠒⡟⠒⠒⠒⠒⠒⠓⡗⢚⠒⠚⠒⠒⠒⡗⠒⠒⢒⠲⠒⠒⡗⠒⠒⠒⠲⠒⠒⡗⠒⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⠒⠒⢺ </span></span>
715
+ <span id="cb13-46"><a href="#cb13-46" tabindex="-1"></a><span class="co">#&gt; c ⡧⠤⠤⡧⠤⠤⠤⠤⠤⠥⡧⠴⠥⠤⠤⠤⠤⡧⠤⠤⢤⠤⠤⠤⡧⠤⠤⠤⠤⠤⢤⡧⠤⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⠤⠤⢼ </span></span>
716
+ <span id="cb13-47"><a href="#cb13-47" tabindex="-1"></a><span class="co">#&gt; 16.0 ⡇ ⡇ ⡇ ⡇ ⡇ ⡇ ⠂ ⡇ ⠂ ⢸ </span></span>
717
+ <span id="cb13-48"><a href="#cb13-48" tabindex="-1"></a><span class="co">#&gt; ⣇⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣀⣀⣸ </span></span>
718
+ <span id="cb13-49"><a href="#cb13-49" tabindex="-1"></a><span class="co">#&gt; 50.0 100 150 200 250 300 </span></span>
719
+ <span id="cb13-50"><a href="#cb13-50" tabindex="-1"></a><span class="co">#&gt; hp </span></span>
720
+ <span id="cb13-51"><a href="#cb13-51" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
721
+ </div>
722
+ <div id="theme-auto-detection" class="section level3">
723
+ <h3>Theme Auto-Detection</h3>
724
+ <p>ggplotcli automatically respects ggplot2 themes:</p>
725
+ <div class="sourceCode" id="cb14"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb14-1"><a href="#cb14-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(mtcars, <span class="fu">aes</span>(<span class="at">x =</span> wt, <span class="at">y =</span> mpg)) <span class="sc">+</span></span>
726
+ <span id="cb14-2"><a href="#cb14-2" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">color =</span> <span class="st">&quot;blue&quot;</span>) <span class="sc">+</span></span>
727
+ <span id="cb14-3"><a href="#cb14-3" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;theme_bw() - Grid + Border&quot;</span>)</span>
728
+ <span id="cb14-4"><a href="#cb14-4" tabindex="-1"></a></span>
729
+ <span id="cb14-5"><a href="#cb14-5" tabindex="-1"></a><span class="co"># theme_bw has both grid and border</span></span>
730
+ <span id="cb14-6"><a href="#cb14-6" tabindex="-1"></a><span class="fu">ggplotcli</span>(p <span class="sc">+</span> <span class="fu">theme_bw</span>(), <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">14</span>, <span class="at">border =</span> <span class="st">&quot;auto&quot;</span>, <span class="at">grid =</span> <span class="st">&quot;auto&quot;</span>)</span>
731
+ <span id="cb14-7"><a href="#cb14-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
732
+ <span id="cb14-8"><a href="#cb14-8" tabindex="-1"></a><span class="co">#&gt; theme_bw() - Grid + Border </span></span>
733
+ <span id="cb14-9"><a href="#cb14-9" tabindex="-1"></a><span class="co">#&gt; 35.0 ⡏⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⢹ </span></span>
734
+ <span id="cb14-10"><a href="#cb14-10" tabindex="-1"></a><span class="co">#&gt; ⡧⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⢼ </span></span>
735
+ <span id="cb14-11"><a href="#cb14-11" tabindex="-1"></a><span class="co">#&gt; 30.0 ⣏⣉⣉⣹⣉⣍⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣹ </span></span>
736
+ <span id="cb14-12"><a href="#cb14-12" tabindex="-1"></a><span class="co">#&gt; m ⣗⣒⣒⣺⣒⣒⣒⣒⣲⣗⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣺ </span></span>
737
+ <span id="cb14-13"><a href="#cb14-13" tabindex="-1"></a><span class="co">#&gt; p 25.0 ⡗⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⡒⠒⡗⠒⠒⠒⠒⢺⠒⡒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⢺ </span></span>
738
+ <span id="cb14-14"><a href="#cb14-14" tabindex="-1"></a><span class="co">#&gt; g 20.0 ⡯⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⠭⡯⠯⠭⠭⠯⢽⠭⠭⠭⠭⢭⡯⠭⠭⠭⡭⢽⠭⠭⠭⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⠭⢽ </span></span>
739
+ <span id="cb14-15"><a href="#cb14-15" tabindex="-1"></a><span class="co">#&gt; ⡯⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⢭⠭⠭⢭⣯⠭⠽⢭⠭⢽⠭⠭⠭⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⠭⢽ </span></span>
740
+ <span id="cb14-16"><a href="#cb14-16" tabindex="-1"></a><span class="co">#&gt; 15.0 ⣗⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣓⣒⣒⣒⣺⣒⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣓⣺⣒⣒⣺ </span></span>
741
+ <span id="cb14-17"><a href="#cb14-17" tabindex="-1"></a><span class="co">#&gt; ⡗⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⢺ </span></span>
742
+ <span id="cb14-18"><a href="#cb14-18" tabindex="-1"></a><span class="co">#&gt; 10.0 ⣇⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣸ </span></span>
743
+ <span id="cb14-19"><a href="#cb14-19" tabindex="-1"></a><span class="co">#&gt; 2.0 3.0 4.0 5.0 </span></span>
744
+ <span id="cb14-20"><a href="#cb14-20" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
745
+ <span id="cb14-21"><a href="#cb14-21" tabindex="-1"></a><span class="co">#&gt; </span></span>
746
+ <span id="cb14-22"><a href="#cb14-22" tabindex="-1"></a></span>
747
+ <span id="cb14-23"><a href="#cb14-23" tabindex="-1"></a><span class="co"># theme_classic has border but no grid</span></span>
748
+ <span id="cb14-24"><a href="#cb14-24" tabindex="-1"></a><span class="fu">ggplotcli</span>(p <span class="sc">+</span> <span class="fu">theme_classic</span>() <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;theme_classic() - Border Only&quot;</span>), </span>
749
+ <span id="cb14-25"><a href="#cb14-25" tabindex="-1"></a> <span class="at">width =</span> <span class="dv">60</span>, <span class="at">height =</span> <span class="dv">14</span>, <span class="at">border =</span> <span class="st">&quot;auto&quot;</span>, <span class="at">grid =</span> <span class="st">&quot;auto&quot;</span>)</span>
750
+ <span id="cb14-26"><a href="#cb14-26" tabindex="-1"></a><span class="co">#&gt; </span></span>
751
+ <span id="cb14-27"><a href="#cb14-27" tabindex="-1"></a><span class="co">#&gt; theme_classic() - Border Only </span></span>
752
+ <span id="cb14-28"><a href="#cb14-28" tabindex="-1"></a><span class="co">#&gt; 35.0 ⡏⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⢹⠉⠉⠉⠉⠉⡏⠉⠉⠉⠉⢹⠉⠉⢹ </span></span>
753
+ <span id="cb14-29"><a href="#cb14-29" tabindex="-1"></a><span class="co">#&gt; ⡧⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⢼⠤⠤⠤⠤⠤⡧⠤⠤⠤⠤⢼⠤⠤⢼ </span></span>
754
+ <span id="cb14-30"><a href="#cb14-30" tabindex="-1"></a><span class="co">#&gt; 30.0 ⣏⣉⣉⣹⣉⣍⣉⣉⣉⣏⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣹⣉⣉⣉⣉⣉⣏⣉⣉⣉⣉⣹⣉⣉⣹ </span></span>
755
+ <span id="cb14-31"><a href="#cb14-31" tabindex="-1"></a><span class="co">#&gt; m ⣗⣒⣒⣺⣒⣒⣒⣒⣲⣗⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣺ </span></span>
756
+ <span id="cb14-32"><a href="#cb14-32" tabindex="-1"></a><span class="co">#&gt; p 25.0 ⡗⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⡒⠒⡗⠒⠒⠒⠒⢺⠒⡒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⢺ </span></span>
757
+ <span id="cb14-33"><a href="#cb14-33" tabindex="-1"></a><span class="co">#&gt; g 20.0 ⡯⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⠭⡯⠯⠭⠭⠯⢽⠭⠭⠭⠭⢭⡯⠭⠭⠭⡭⢽⠭⠭⠭⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⠭⢽ </span></span>
758
+ <span id="cb14-34"><a href="#cb14-34" tabindex="-1"></a><span class="co">#&gt; ⡯⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⢭⠭⠭⢭⣯⠭⠽⢭⠭⢽⠭⠭⠭⠭⠭⢽⠭⠭⠭⠭⠭⡯⠭⠭⠭⠭⢽⠭⠭⢽ </span></span>
759
+ <span id="cb14-35"><a href="#cb14-35" tabindex="-1"></a><span class="co">#&gt; 15.0 ⣗⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣒⣗⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣓⣒⣒⣒⣺⣒⣒⣒⣒⣒⣺⣒⣒⣒⣒⣒⣗⣒⣒⣒⣓⣺⣒⣒⣺ </span></span>
760
+ <span id="cb14-36"><a href="#cb14-36" tabindex="-1"></a><span class="co">#&gt; ⡗⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⢺⠒⠒⠒⠒⠒⡗⠒⠒⠒⠒⢺⠒⠒⢺ </span></span>
761
+ <span id="cb14-37"><a href="#cb14-37" tabindex="-1"></a><span class="co">#&gt; 10.0 ⣇⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣸⣀⣀⣀⣀⣀⣇⣀⣀⣀⣀⣸⣀⣀⣸ </span></span>
762
+ <span id="cb14-38"><a href="#cb14-38" tabindex="-1"></a><span class="co">#&gt; 2.0 3.0 4.0 5.0 </span></span>
763
+ <span id="cb14-39"><a href="#cb14-39" tabindex="-1"></a><span class="co">#&gt; wt </span></span>
764
+ <span id="cb14-40"><a href="#cb14-40" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
765
+ </div>
766
+ </div>
767
+ <div id="canvas-types" class="section level2">
768
+ <h2>Canvas Types</h2>
769
+ <p>Three rendering modes are available:</p>
770
+ <div class="sourceCode" id="cb15"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb15-1"><a href="#cb15-1" tabindex="-1"></a>wave <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(<span class="fu">data.frame</span>(<span class="at">x =</span> <span class="dv">1</span><span class="sc">:</span><span class="dv">25</span>, <span class="at">y =</span> <span class="fu">sin</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">25</span><span class="sc">/</span><span class="dv">4</span>)<span class="sc">*</span><span class="dv">8</span>), <span class="fu">aes</span>(x, y)) <span class="sc">+</span></span>
771
+ <span id="cb15-2"><a href="#cb15-2" tabindex="-1"></a> <span class="fu">geom_line</span>(<span class="at">color =</span> <span class="st">&quot;green&quot;</span>)</span>
772
+ <span id="cb15-3"><a href="#cb15-3" tabindex="-1"></a></span>
773
+ <span id="cb15-4"><a href="#cb15-4" tabindex="-1"></a><span class="co"># Braille (highest resolution - 2x4 dots per character)</span></span>
774
+ <span id="cb15-5"><a href="#cb15-5" tabindex="-1"></a><span class="fu">ggplotcli</span>(wave <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Braille Canvas (highest resolution)&quot;</span>), </span>
775
+ <span id="cb15-6"><a href="#cb15-6" tabindex="-1"></a> <span class="at">width =</span> <span class="dv">50</span>, <span class="at">height =</span> <span class="dv">8</span>, <span class="at">canvas_type =</span> <span class="st">&quot;braille&quot;</span>)</span>
776
+ <span id="cb15-7"><a href="#cb15-7" tabindex="-1"></a><span class="co">#&gt; </span></span>
777
+ <span id="cb15-8"><a href="#cb15-8" tabindex="-1"></a><span class="co">#&gt; Braille Canvas (highest resolution) </span></span>
778
+ <span id="cb15-9"><a href="#cb15-9" tabindex="-1"></a><span class="co">#&gt; ⢀⣀⠤⠔⠒⠒⠒⠒⠒⠒⠤⢄⡀ </span></span>
779
+ <span id="cb15-10"><a href="#cb15-10" tabindex="-1"></a><span class="co">#&gt; y 5.0 ⠔⠊⠁ ⠈⠑⠤⣀ </span></span>
780
+ <span id="cb15-11"><a href="#cb15-11" tabindex="-1"></a><span class="co">#&gt; -5.0 ⠉⠑⠢⢄⡀ ⣀⠤⠒⠉ </span></span>
781
+ <span id="cb15-12"><a href="#cb15-12" tabindex="-1"></a><span class="co">#&gt; ⠈⠑⠢⠤⠤⠤⠤⠤⠤⠒⠊⠉ </span></span>
782
+ <span id="cb15-13"><a href="#cb15-13" tabindex="-1"></a><span class="co">#&gt; 0 5.0 10.0 15.0 20.0 25.0 </span></span>
783
+ <span id="cb15-14"><a href="#cb15-14" tabindex="-1"></a><span class="co">#&gt; x </span></span>
784
+ <span id="cb15-15"><a href="#cb15-15" tabindex="-1"></a><span class="co">#&gt; </span></span>
785
+ <span id="cb15-16"><a href="#cb15-16" tabindex="-1"></a></span>
786
+ <span id="cb15-17"><a href="#cb15-17" tabindex="-1"></a><span class="co"># Block (medium resolution - uses block characters)</span></span>
787
+ <span id="cb15-18"><a href="#cb15-18" tabindex="-1"></a><span class="fu">ggplotcli</span>(wave <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Block Canvas (medium resolution)&quot;</span>), </span>
788
+ <span id="cb15-19"><a href="#cb15-19" tabindex="-1"></a> <span class="at">width =</span> <span class="dv">50</span>, <span class="at">height =</span> <span class="dv">8</span>, <span class="at">canvas_type =</span> <span class="st">&quot;block&quot;</span>)</span>
789
+ <span id="cb15-20"><a href="#cb15-20" tabindex="-1"></a><span class="co">#&gt; </span></span>
790
+ <span id="cb15-21"><a href="#cb15-21" tabindex="-1"></a><span class="co">#&gt; Block Canvas (medium resolution) </span></span>
791
+ <span id="cb15-22"><a href="#cb15-22" tabindex="-1"></a><span class="co">#&gt; ▄▄▄▀▀▀▀▀▄▄▄ </span></span>
792
+ <span id="cb15-23"><a href="#cb15-23" tabindex="-1"></a><span class="co">#&gt; y 5.0 ▄▀▀ ▀▀▀▄▄ </span></span>
793
+ <span id="cb15-24"><a href="#cb15-24" tabindex="-1"></a><span class="co">#&gt; -5.0 ▀▄▄▄ ▄▄▀▀ </span></span>
794
+ <span id="cb15-25"><a href="#cb15-25" tabindex="-1"></a><span class="co">#&gt; ▀▀▀▄▄▄▄▄▀▀▀ </span></span>
795
+ <span id="cb15-26"><a href="#cb15-26" tabindex="-1"></a><span class="co">#&gt; 0 5.0 10.0 15.0 20.0 25.0 </span></span>
796
+ <span id="cb15-27"><a href="#cb15-27" tabindex="-1"></a><span class="co">#&gt; x </span></span>
797
+ <span id="cb15-28"><a href="#cb15-28" tabindex="-1"></a><span class="co">#&gt; </span></span>
798
+ <span id="cb15-29"><a href="#cb15-29" tabindex="-1"></a></span>
799
+ <span id="cb15-30"><a href="#cb15-30" tabindex="-1"></a><span class="co"># ASCII (basic, most compatible)</span></span>
800
+ <span id="cb15-31"><a href="#cb15-31" tabindex="-1"></a><span class="fu">ggplotcli</span>(wave <span class="sc">+</span> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;ASCII Canvas (most compatible)&quot;</span>), </span>
801
+ <span id="cb15-32"><a href="#cb15-32" tabindex="-1"></a> <span class="at">width =</span> <span class="dv">50</span>, <span class="at">height =</span> <span class="dv">8</span>, <span class="at">canvas_type =</span> <span class="st">&quot;ascii&quot;</span>)</span>
802
+ <span id="cb15-33"><a href="#cb15-33" tabindex="-1"></a><span class="co">#&gt; </span></span>
803
+ <span id="cb15-34"><a href="#cb15-34" tabindex="-1"></a><span class="co">#&gt; ASCII Canvas (most compatible) </span></span>
804
+ <span id="cb15-35"><a href="#cb15-35" tabindex="-1"></a><span class="co">#&gt; ********* </span></span>
805
+ <span id="cb15-36"><a href="#cb15-36" tabindex="-1"></a><span class="co">#&gt; y 5.0 ***** ***** </span></span>
806
+ <span id="cb15-37"><a href="#cb15-37" tabindex="-1"></a><span class="co">#&gt; -5.0 **** ****** </span></span>
807
+ <span id="cb15-38"><a href="#cb15-38" tabindex="-1"></a><span class="co">#&gt; ********* </span></span>
808
+ <span id="cb15-39"><a href="#cb15-39" tabindex="-1"></a><span class="co">#&gt; 0 5.0 10.0 15.0 20.0 25.0 </span></span>
809
+ <span id="cb15-40"><a href="#cb15-40" tabindex="-1"></a><span class="co">#&gt; x </span></span>
810
+ <span id="cb15-41"><a href="#cb15-41" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
811
+ </div>
812
+ <div id="color-mapping" class="section level2">
813
+ <h2>Color Mapping</h2>
814
+ <p>ggplotcli intelligently maps ggplot2 colors to terminal colors (red,
815
+ yellow, green, cyan, blue, magenta). The mapping prioritizes
816
+ <strong>color distinctness</strong> over hue accuracy to maximize visual
817
+ differentiation between groups.</p>
818
+ <div id="many-groups-8" class="section level3">
819
+ <h3>Many Groups (8+)</h3>
820
+ <p>Even with many groups, colors are distributed to minimize
821
+ repetition:</p>
822
+ <div class="sourceCode" id="cb16"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb16-1"><a href="#cb16-1" tabindex="-1"></a><span class="fu">set.seed</span>(<span class="dv">123</span>)</span>
823
+ <span id="cb16-2"><a href="#cb16-2" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
824
+ <span id="cb16-3"><a href="#cb16-3" tabindex="-1"></a> <span class="at">group =</span> <span class="fu">factor</span>(<span class="fu">rep</span>(<span class="fu">paste0</span>(<span class="st">&quot;G&quot;</span>, <span class="dv">1</span><span class="sc">:</span><span class="dv">8</span>), <span class="at">each =</span> <span class="dv">30</span>)),</span>
825
+ <span id="cb16-4"><a href="#cb16-4" tabindex="-1"></a> <span class="at">value =</span> <span class="fu">unlist</span>(<span class="fu">lapply</span>(<span class="dv">1</span><span class="sc">:</span><span class="dv">8</span>, <span class="cf">function</span>(i) <span class="fu">rnorm</span>(<span class="dv">30</span>, <span class="at">mean =</span> i <span class="sc">*</span> <span class="dv">2</span>, <span class="at">sd =</span> <span class="fl">1.5</span>)))</span>
826
+ <span id="cb16-5"><a href="#cb16-5" tabindex="-1"></a>)</span>
827
+ <span id="cb16-6"><a href="#cb16-6" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="at">x =</span> group, <span class="at">y =</span> value, <span class="at">fill =</span> group)) <span class="sc">+</span></span>
828
+ <span id="cb16-7"><a href="#cb16-7" tabindex="-1"></a> <span class="fu">geom_boxplot</span>() <span class="sc">+</span></span>
829
+ <span id="cb16-8"><a href="#cb16-8" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;8 Groups with Optimized Color Distribution&quot;</span>)</span>
830
+ <span id="cb16-9"><a href="#cb16-9" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">85</span>, <span class="at">height =</span> <span class="dv">18</span>, <span class="at">boxplot_style =</span> <span class="st">&quot;ascii&quot;</span>)</span>
831
+ <span id="cb16-10"><a href="#cb16-10" tabindex="-1"></a><span class="co">#&gt; </span></span>
832
+ <span id="cb16-11"><a href="#cb16-11" tabindex="-1"></a><span class="co">#&gt; 8 Groups with Optimized Color Distribution </span></span>
833
+ <span id="cb16-12"><a href="#cb16-12" tabindex="-1"></a><span class="co">#&gt; ───── </span></span>
834
+ <span id="cb16-13"><a href="#cb16-13" tabindex="-1"></a><span class="co">#&gt; * ───── ┌─────┐ group </span></span>
835
+ <span id="cb16-14"><a href="#cb16-14" tabindex="-1"></a><span class="co">#&gt; * ┌─────┐ └─────┘ * G1 </span></span>
836
+ <span id="cb16-15"><a href="#cb16-15" tabindex="-1"></a><span class="co">#&gt; 15.0 ───── │─────│ ───── * G2 </span></span>
837
+ <span id="cb16-16"><a href="#cb16-16" tabindex="-1"></a><span class="co">#&gt; v ───── ┌─────┐ └─────┘ * G3 </span></span>
838
+ <span id="cb16-17"><a href="#cb16-17" tabindex="-1"></a><span class="co">#&gt; a ───── ┌─────┐ └─────┘ * G4 </span></span>
839
+ <span id="cb16-18"><a href="#cb16-18" tabindex="-1"></a><span class="co">#&gt; l 10.0 * ┌─────┐ │─────│ * G5 </span></span>
840
+ <span id="cb16-19"><a href="#cb16-19" tabindex="-1"></a><span class="co">#&gt; u ───── ───── └─────┘ └─────┘ * G6 </span></span>
841
+ <span id="cb16-20"><a href="#cb16-20" tabindex="-1"></a><span class="co">#&gt; e │ └─────┘ ───── * G7 </span></span>
842
+ <span id="cb16-21"><a href="#cb16-21" tabindex="-1"></a><span class="co">#&gt; 5.0 ───── ┌─────┐ ───── * G8 </span></span>
843
+ <span id="cb16-22"><a href="#cb16-22" tabindex="-1"></a><span class="co">#&gt; ┌─────┐ └─────┘ * </span></span>
844
+ <span id="cb16-23"><a href="#cb16-23" tabindex="-1"></a><span class="co">#&gt; └─────┘ ───── </span></span>
845
+ <span id="cb16-24"><a href="#cb16-24" tabindex="-1"></a><span class="co">#&gt; 0 ───── </span></span>
846
+ <span id="cb16-25"><a href="#cb16-25" tabindex="-1"></a><span class="co">#&gt; </span></span>
847
+ <span id="cb16-26"><a href="#cb16-26" tabindex="-1"></a><span class="co">#&gt; G1 G2 G3 G4 G5 G6 G7 G8 </span></span>
848
+ <span id="cb16-27"><a href="#cb16-27" tabindex="-1"></a><span class="co">#&gt; group </span></span>
849
+ <span id="cb16-28"><a href="#cb16-28" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
850
+ </div>
851
+ </div>
852
+ <div id="showcase-maximum-complexity" class="section level2">
853
+ <h2>Showcase: Maximum Complexity</h2>
854
+ <div id="complex-faceted-boxplot" class="section level3">
855
+ <h3>Complex Faceted Boxplot</h3>
856
+ <div class="sourceCode" id="cb17"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb17-1"><a href="#cb17-1" tabindex="-1"></a><span class="fu">set.seed</span>(<span class="dv">42</span>)</span>
857
+ <span id="cb17-2"><a href="#cb17-2" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
858
+ <span id="cb17-3"><a href="#cb17-3" tabindex="-1"></a> <span class="at">treatment =</span> <span class="fu">factor</span>(<span class="fu">rep</span>(<span class="fu">c</span>(<span class="st">&quot;Control&quot;</span>, <span class="st">&quot;Drug A&quot;</span>, <span class="st">&quot;Drug B&quot;</span>), <span class="at">each =</span> <span class="dv">60</span>)),</span>
859
+ <span id="cb17-4"><a href="#cb17-4" tabindex="-1"></a> <span class="at">timepoint =</span> <span class="fu">factor</span>(<span class="fu">rep</span>(<span class="fu">rep</span>(<span class="fu">c</span>(<span class="st">&quot;Baseline&quot;</span>, <span class="st">&quot;Week 4&quot;</span>, <span class="st">&quot;Week 8&quot;</span>), <span class="at">each =</span> <span class="dv">20</span>), <span class="dv">3</span>)),</span>
860
+ <span id="cb17-5"><a href="#cb17-5" tabindex="-1"></a> <span class="at">response =</span> <span class="fu">c</span>(</span>
861
+ <span id="cb17-6"><a href="#cb17-6" tabindex="-1"></a> <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">50</span>, <span class="dv">10</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">52</span>, <span class="dv">10</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">51</span>, <span class="dv">10</span>), <span class="co"># Control</span></span>
862
+ <span id="cb17-7"><a href="#cb17-7" tabindex="-1"></a> <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">50</span>, <span class="dv">10</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">65</span>, <span class="dv">12</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">70</span>, <span class="dv">11</span>), <span class="co"># Drug A</span></span>
863
+ <span id="cb17-8"><a href="#cb17-8" tabindex="-1"></a> <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">50</span>, <span class="dv">10</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">58</span>, <span class="dv">11</span>), <span class="fu">rnorm</span>(<span class="dv">20</span>, <span class="dv">62</span>, <span class="dv">10</span>) <span class="co"># Drug B</span></span>
864
+ <span id="cb17-9"><a href="#cb17-9" tabindex="-1"></a> )</span>
865
+ <span id="cb17-10"><a href="#cb17-10" tabindex="-1"></a>)</span>
866
+ <span id="cb17-11"><a href="#cb17-11" tabindex="-1"></a></span>
867
+ <span id="cb17-12"><a href="#cb17-12" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="at">x =</span> timepoint, <span class="at">y =</span> response)) <span class="sc">+</span></span>
868
+ <span id="cb17-13"><a href="#cb17-13" tabindex="-1"></a> <span class="fu">geom_boxplot</span>(<span class="fu">aes</span>(<span class="at">fill =</span> treatment)) <span class="sc">+</span></span>
869
+ <span id="cb17-14"><a href="#cb17-14" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Treatment Response Over Time&quot;</span>,</span>
870
+ <span id="cb17-15"><a href="#cb17-15" tabindex="-1"></a> <span class="at">subtitle =</span> <span class="st">&quot;Faceted by treatment group&quot;</span>,</span>
871
+ <span id="cb17-16"><a href="#cb17-16" tabindex="-1"></a> <span class="at">x =</span> <span class="st">&quot;Timepoint&quot;</span>, <span class="at">y =</span> <span class="st">&quot;Response&quot;</span>) <span class="sc">+</span></span>
872
+ <span id="cb17-17"><a href="#cb17-17" tabindex="-1"></a> <span class="fu">theme_bw</span>()</span>
873
+ <span id="cb17-18"><a href="#cb17-18" tabindex="-1"></a></span>
874
+ <span id="cb17-19"><a href="#cb17-19" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">100</span>, <span class="at">height =</span> <span class="dv">22</span>, <span class="at">boxplot_style =</span> <span class="st">&quot;ascii&quot;</span>)</span>
875
+ <span id="cb17-20"><a href="#cb17-20" tabindex="-1"></a><span class="co">#&gt; </span></span>
876
+ <span id="cb17-21"><a href="#cb17-21" tabindex="-1"></a><span class="co">#&gt; Treatment Response Over Time </span></span>
877
+ <span id="cb17-22"><a href="#cb17-22" tabindex="-1"></a><span class="co">#&gt; Faceted by treatment group </span></span>
878
+ <span id="cb17-23"><a href="#cb17-23" tabindex="-1"></a><span class="co">#&gt; ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ </span></span>
879
+ <span id="cb17-24"><a href="#cb17-24" tabindex="-1"></a><span class="co">#&gt; 100 ⡇ * ⢸ </span></span>
880
+ <span id="cb17-25"><a href="#cb17-25" tabindex="-1"></a><span class="co">#&gt; ⡇ ⢸ </span></span>
881
+ <span id="cb17-26"><a href="#cb17-26" tabindex="-1"></a><span class="co">#&gt; ⡇ * ⢸ </span></span>
882
+ <span id="cb17-27"><a href="#cb17-27" tabindex="-1"></a><span class="co">#&gt; R 80.0 ⡇ ───── ──*── ⢸ </span></span>
883
+ <span id="cb17-28"><a href="#cb17-28" tabindex="-1"></a><span class="co">#&gt; e ⡇ ┌─────┐ │ ───── ⢸ treatment </span></span>
884
+ <span id="cb17-29"><a href="#cb17-29" tabindex="-1"></a><span class="co">#&gt; s ⡇ ───── ───── │ │ * ┌─────┐┌─────┐ ⢸ * Control </span></span>
885
+ <span id="cb17-30"><a href="#cb17-30" tabindex="-1"></a><span class="co">#&gt; p ⡇ ┌─────┐ ───── ───── │ │─────│ ───── ───── └─────┘│─────│ ⢸ * Drug A </span></span>
886
+ <span id="cb17-31"><a href="#cb17-31" tabindex="-1"></a><span class="co">#&gt; o 60.0 ⡇ │ │┌─────┐ │ ┌─────┐└─────┘┌─────┐ ┌─────┐ │ └─────┘ ⢸ * Drug B </span></span>
887
+ <span id="cb17-32"><a href="#cb17-32" tabindex="-1"></a><span class="co">#&gt; n ⡇ │─────││─────│┌─────┐ │─────│ │ └─────┘ │─────│ ──*── │ ⢸ </span></span>
888
+ <span id="cb17-33"><a href="#cb17-33" tabindex="-1"></a><span class="co">#&gt; s ⡇ └─────┘└─────┘│─────│ └─────┘ ───── ───── └─────┘ ──*── ⢸ </span></span>
889
+ <span id="cb17-34"><a href="#cb17-34" tabindex="-1"></a><span class="co">#&gt; e ⡇ │ ───── └─────┘ │ * ───── ⢸ </span></span>
890
+ <span id="cb17-35"><a href="#cb17-35" tabindex="-1"></a><span class="co">#&gt; 40.0 ⡇ │ │ │ ⢸ </span></span>
891
+ <span id="cb17-36"><a href="#cb17-36" tabindex="-1"></a><span class="co">#&gt; ⡇ │ ───── ───── ⢸ </span></span>
892
+ <span id="cb17-37"><a href="#cb17-37" tabindex="-1"></a><span class="co">#&gt; ⡇ ───── * ⢸ </span></span>
893
+ <span id="cb17-38"><a href="#cb17-38" tabindex="-1"></a><span class="co">#&gt; 20.0 ⡇ ⢸ </span></span>
894
+ <span id="cb17-39"><a href="#cb17-39" tabindex="-1"></a><span class="co">#&gt; ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ </span></span>
895
+ <span id="cb17-40"><a href="#cb17-40" tabindex="-1"></a><span class="co">#&gt; Baseline Week 4 Week 8 </span></span>
896
+ <span id="cb17-41"><a href="#cb17-41" tabindex="-1"></a><span class="co">#&gt; Timepoint </span></span>
897
+ <span id="cb17-42"><a href="#cb17-42" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
898
+ </div>
899
+ <div id="multi-layer-scientific-plot" class="section level3">
900
+ <h3>Multi-Layer Scientific Plot</h3>
901
+ <div class="sourceCode" id="cb18"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb18-1"><a href="#cb18-1" tabindex="-1"></a><span class="co"># Simulated experiment data</span></span>
902
+ <span id="cb18-2"><a href="#cb18-2" tabindex="-1"></a><span class="fu">set.seed</span>(<span class="dv">123</span>)</span>
903
+ <span id="cb18-3"><a href="#cb18-3" tabindex="-1"></a>x <span class="ot">&lt;-</span> <span class="fu">seq</span>(<span class="dv">0</span>, <span class="dv">10</span>, <span class="at">length.out =</span> <span class="dv">50</span>)</span>
904
+ <span id="cb18-4"><a href="#cb18-4" tabindex="-1"></a>df <span class="ot">&lt;-</span> <span class="fu">data.frame</span>(</span>
905
+ <span id="cb18-5"><a href="#cb18-5" tabindex="-1"></a> <span class="at">x =</span> <span class="fu">rep</span>(x, <span class="dv">3</span>),</span>
906
+ <span id="cb18-6"><a href="#cb18-6" tabindex="-1"></a> <span class="at">y =</span> <span class="fu">c</span>(</span>
907
+ <span id="cb18-7"><a href="#cb18-7" tabindex="-1"></a> <span class="dv">2</span> <span class="sc">*</span> x <span class="sc">+</span> <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">0</span>, <span class="fl">1.5</span>),</span>
908
+ <span id="cb18-8"><a href="#cb18-8" tabindex="-1"></a> <span class="fl">1.5</span> <span class="sc">*</span> x <span class="sc">+</span> <span class="dv">3</span> <span class="sc">+</span> <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">0</span>, <span class="fl">1.2</span>),</span>
909
+ <span id="cb18-9"><a href="#cb18-9" tabindex="-1"></a> x<span class="sc">^</span><span class="fl">1.2</span> <span class="sc">+</span> <span class="fu">rnorm</span>(<span class="dv">50</span>, <span class="dv">0</span>, <span class="dv">1</span>)</span>
910
+ <span id="cb18-10"><a href="#cb18-10" tabindex="-1"></a> ),</span>
911
+ <span id="cb18-11"><a href="#cb18-11" tabindex="-1"></a> <span class="at">group =</span> <span class="fu">rep</span>(<span class="fu">c</span>(<span class="st">&quot;Linear&quot;</span>, <span class="st">&quot;Offset&quot;</span>, <span class="st">&quot;Power&quot;</span>), <span class="at">each =</span> <span class="dv">50</span>)</span>
912
+ <span id="cb18-12"><a href="#cb18-12" tabindex="-1"></a>)</span>
913
+ <span id="cb18-13"><a href="#cb18-13" tabindex="-1"></a></span>
914
+ <span id="cb18-14"><a href="#cb18-14" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(df, <span class="fu">aes</span>(<span class="at">x =</span> x, <span class="at">y =</span> y, <span class="at">color =</span> group)) <span class="sc">+</span></span>
915
+ <span id="cb18-15"><a href="#cb18-15" tabindex="-1"></a> <span class="fu">geom_point</span>(<span class="at">alpha =</span> <span class="fl">0.6</span>) <span class="sc">+</span></span>
916
+ <span id="cb18-16"><a href="#cb18-16" tabindex="-1"></a> <span class="fu">geom_smooth</span>(<span class="at">method =</span> <span class="st">&quot;loess&quot;</span>, <span class="at">se =</span> <span class="cn">FALSE</span>) <span class="sc">+</span></span>
917
+ <span id="cb18-17"><a href="#cb18-17" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Multi-Group Regression Analysis&quot;</span>,</span>
918
+ <span id="cb18-18"><a href="#cb18-18" tabindex="-1"></a> <span class="at">subtitle =</span> <span class="st">&quot;Points with LOESS smoothing&quot;</span>,</span>
919
+ <span id="cb18-19"><a href="#cb18-19" tabindex="-1"></a> <span class="at">x =</span> <span class="st">&quot;Predictor&quot;</span>, <span class="at">y =</span> <span class="st">&quot;Response&quot;</span>) <span class="sc">+</span></span>
920
+ <span id="cb18-20"><a href="#cb18-20" tabindex="-1"></a> <span class="fu">theme_minimal</span>()</span>
921
+ <span id="cb18-21"><a href="#cb18-21" tabindex="-1"></a></span>
922
+ <span id="cb18-22"><a href="#cb18-22" tabindex="-1"></a><span class="fu">suppressMessages</span>(<span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">70</span>, <span class="at">height =</span> <span class="dv">18</span>))</span>
923
+ <span id="cb18-23"><a href="#cb18-23" tabindex="-1"></a><span class="co">#&gt; </span></span>
924
+ <span id="cb18-24"><a href="#cb18-24" tabindex="-1"></a><span class="co">#&gt; Multi-Group Regression Analysis </span></span>
925
+ <span id="cb18-25"><a href="#cb18-25" tabindex="-1"></a><span class="co">#&gt; Points with LOESS smoothing </span></span>
926
+ <span id="cb18-26"><a href="#cb18-26" tabindex="-1"></a><span class="co">#&gt; ⠄ ⠠ </span></span>
927
+ <span id="cb18-27"><a href="#cb18-27" tabindex="-1"></a><span class="co">#&gt; 20.0 ⠂⢀⡐⣤⢰⣾ </span></span>
928
+ <span id="cb18-28"><a href="#cb18-28" tabindex="-1"></a><span class="co">#&gt; R ⡀⣠⡄⣶⢰⣇⣿⣿⣿⣿⣿ </span></span>
929
+ <span id="cb18-29"><a href="#cb18-29" tabindex="-1"></a><span class="co">#&gt; e 15.0 ⢀⢀⠠⡀⣤⣠⣾⣸⣯⣿⣿⣿⣿⣿⣿⡟⣿⢹⠿ group </span></span>
930
+ <span id="cb18-30"><a href="#cb18-30" tabindex="-1"></a><span class="co">#&gt; s ⠂⡀⡀⣬⢰⣾⣸⣧⣿⣾⣿⣿⣿⣿⡟⣿⠹⠇⠛⢁⠁ ⠈ * Linear </span></span>
931
+ <span id="cb18-31"><a href="#cb18-31" tabindex="-1"></a><span class="co">#&gt; p ⢀ ⡀ ⠐⠐⣀⣠⢠⣦⣿⣷⣿⣿⣿⢿⡟⣿⢻⠿⠸⠃⠋⠡ ⠂⠁ * Offset </span></span>
932
+ <span id="cb18-32"><a href="#cb18-32" tabindex="-1"></a><span class="co">#&gt; o 10.0 ⠠ ⡀⣠⢠⣴⢴⡇⣿⣷⣿⣿⡟⣿⡏⡿⢸⠛⠘⠁⡁ ⠈ * Power </span></span>
933
+ <span id="cb18-33"><a href="#cb18-33" tabindex="-1"></a><span class="co">#&gt; n ⡀⣥⡆⣶⢰⣿⢸⡇⣿⣸⣿⣿⡿⣿⡯⠿⠘⠃⠉ ⠐ </span></span>
934
+ <span id="cb18-34"><a href="#cb18-34" tabindex="-1"></a><span class="co">#&gt; s ⡀ ⠐ ⢄⣀⢤⡆⣶⣖⣿⢸⡇⣿⣇⣿⣼⣿⢾⡟⡿⡹⠟⠘⠑⠁ ⠈ </span></span>
935
+ <span id="cb18-35"><a href="#cb18-35" tabindex="-1"></a><span class="co">#&gt; e 5.0 ⢀⡀⣠⢠⣴⢰⡇⣿⢸⣿⢸⡇⣿⣧⣿⣾⡿⣿⡟⡿⠹⠫⠈ ⠂ </span></span>
936
+ <span id="cb18-36"><a href="#cb18-36" tabindex="-1"></a><span class="co">#&gt; ⣿⡇⣿⢸⣿⣸⣿⣿⢾⣿⢻⡟⠿⠃⠛⠈⠁ </span></span>
937
+ <span id="cb18-37"><a href="#cb18-37" tabindex="-1"></a><span class="co">#&gt; 0 ⣿⡷⣿⠿⢿⠙⠣⠋⡊⠁ ⠈ </span></span>
938
+ <span id="cb18-38"><a href="#cb18-38" tabindex="-1"></a><span class="co">#&gt; ⠋ </span></span>
939
+ <span id="cb18-39"><a href="#cb18-39" tabindex="-1"></a><span class="co">#&gt; 0 2.0 4.0 6.0 8.0 10.0 </span></span>
940
+ <span id="cb18-40"><a href="#cb18-40" tabindex="-1"></a><span class="co">#&gt; Predictor </span></span>
941
+ <span id="cb18-41"><a href="#cb18-41" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
942
+ </div>
943
+ <div id="dense-scatter-with-facets" class="section level3">
944
+ <h3>Dense Scatter with Facets</h3>
945
+ <div class="sourceCode" id="cb19"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb19-1"><a href="#cb19-1" tabindex="-1"></a>p <span class="ot">&lt;-</span> <span class="fu">ggplot</span>(iris, <span class="fu">aes</span>(<span class="at">x =</span> Sepal.Length, <span class="at">y =</span> Petal.Length, <span class="at">color =</span> Species)) <span class="sc">+</span></span>
946
+ <span id="cb19-2"><a href="#cb19-2" tabindex="-1"></a> <span class="fu">geom_point</span>() <span class="sc">+</span></span>
947
+ <span id="cb19-3"><a href="#cb19-3" tabindex="-1"></a> <span class="fu">facet_wrap</span>(<span class="sc">~</span>Species) <span class="sc">+</span></span>
948
+ <span id="cb19-4"><a href="#cb19-4" tabindex="-1"></a> <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;Iris Dataset: Sepal vs Petal Length&quot;</span>,</span>
949
+ <span id="cb19-5"><a href="#cb19-5" tabindex="-1"></a> <span class="at">subtitle =</span> <span class="st">&quot;Faceted by species with color legend&quot;</span>) <span class="sc">+</span></span>
950
+ <span id="cb19-6"><a href="#cb19-6" tabindex="-1"></a> <span class="fu">theme_bw</span>()</span>
951
+ <span id="cb19-7"><a href="#cb19-7" tabindex="-1"></a></span>
952
+ <span id="cb19-8"><a href="#cb19-8" tabindex="-1"></a><span class="fu">ggplotcli</span>(p, <span class="at">width =</span> <span class="dv">80</span>, <span class="at">height =</span> <span class="dv">16</span>)</span>
953
+ <span id="cb19-9"><a href="#cb19-9" tabindex="-1"></a><span class="co">#&gt; </span></span>
954
+ <span id="cb19-10"><a href="#cb19-10" tabindex="-1"></a><span class="co">#&gt; Iris Dataset: Sepal vs Petal Length </span></span>
955
+ <span id="cb19-11"><a href="#cb19-11" tabindex="-1"></a><span class="co">#&gt; Faceted by species with color legend </span></span>
956
+ <span id="cb19-12"><a href="#cb19-12" tabindex="-1"></a><span class="co">#&gt; setosa, 1 versicolor, 1 virginica, 1 </span></span>
957
+ <span id="cb19-13"><a href="#cb19-13" tabindex="-1"></a><span class="co">#&gt; P ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ ⡏⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⠉⢹ </span></span>
958
+ <span id="cb19-14"><a href="#cb19-14" tabindex="-1"></a><span class="co">#&gt; e 6.0⡇ ⢸ ⡇ ⢸ ⡇ ⢀⡄ ⢸ </span></span>
959
+ <span id="cb19-15"><a href="#cb19-15" tabindex="-1"></a><span class="co">#&gt; t ⡇ ⢸ ⡇ ⢸ ⡇ ⡀⣄⠄⡤⡀⠴⠑ ⠂⠁ ⢸ Species </span></span>
960
+ <span id="cb19-16"><a href="#cb19-16" tabindex="-1"></a><span class="co">#&gt; a ⡇ ⢸ ⡇ ⡀⣀⠠⣂⣄⣀⡢⢄ ⢸ ⡇ ⢀ ⠔⠒⠮⠎⠃⠊⠃ ⢸ * setosa </span></span>
961
+ <span id="cb19-17"><a href="#cb19-17" tabindex="-1"></a><span class="co">#&gt; l 4.0⡇ ⢸ ⡇ ⡀⠄⠸⣖⠖⠊⠉⠈⠁ ⢸ ⡇ ⢸ * versicolor </span></span>
962
+ <span id="cb19-18"><a href="#cb19-18" tabindex="-1"></a><span class="co">#&gt; . ⡇ ⢸ ⡇ ⠈⠑ ⢸ ⡇ ⢸ * virginica </span></span>
963
+ <span id="cb19-19"><a href="#cb19-19" tabindex="-1"></a><span class="co">#&gt; L 2.0⡇ ⡀⣀⣂⣰⣀⣄⢠ ⢸ ⡇ ⢸ ⡇ ⢸ </span></span>
964
+ <span id="cb19-20"><a href="#cb19-20" tabindex="-1"></a><span class="co">#&gt; e ⡇ ⠈⠉⠊ ⠁ ⠉ ⠁ ⢸ ⡇ ⢸ ⡇ ⢸ </span></span>
965
+ <span id="cb19-21"><a href="#cb19-21" tabindex="-1"></a><span class="co">#&gt; n ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ ⣇⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣀⣸ </span></span>
966
+ <span id="cb19-22"><a href="#cb19-22" tabindex="-1"></a><span class="co">#&gt; g 5.0 6.0 7.0 8.0 5.0 6.0 7.0 8.0 5.0 6.0 7.0 8.0 </span></span>
967
+ <span id="cb19-23"><a href="#cb19-23" tabindex="-1"></a><span class="co">#&gt; </span></span>
968
+ <span id="cb19-24"><a href="#cb19-24" tabindex="-1"></a><span class="co">#&gt; Sepal.Length </span></span>
969
+ <span id="cb19-25"><a href="#cb19-25" tabindex="-1"></a><span class="co">#&gt; </span></span></code></pre></div>
970
+ </div>
971
+ </div>
972
+ <div id="supported-features-summary" class="section level2">
973
+ <h2>Supported Features Summary</h2>
974
+ <table>
975
+ <thead>
976
+ <tr class="header">
977
+ <th>Feature</th>
978
+ <th>Status</th>
979
+ </tr>
980
+ </thead>
981
+ <tbody>
982
+ <tr class="odd">
983
+ <td>geom_point</td>
984
+ <td>✓</td>
985
+ </tr>
986
+ <tr class="even">
987
+ <td>geom_line, geom_path</td>
988
+ <td>✓</td>
989
+ </tr>
990
+ <tr class="odd">
991
+ <td>geom_bar, geom_col, geom_histogram</td>
992
+ <td>✓</td>
993
+ </tr>
994
+ <tr class="even">
995
+ <td>geom_density</td>
996
+ <td>✓</td>
997
+ </tr>
998
+ <tr class="odd">
999
+ <td>geom_smooth</td>
1000
+ <td>✓</td>
1001
+ </tr>
1002
+ <tr class="even">
1003
+ <td>geom_area</td>
1004
+ <td>✓</td>
1005
+ </tr>
1006
+ <tr class="odd">
1007
+ <td>geom_segment, geom_hline, geom_vline</td>
1008
+ <td>✓</td>
1009
+ </tr>
1010
+ <tr class="even">
1011
+ <td>geom_rect</td>
1012
+ <td>✓</td>
1013
+ </tr>
1014
+ <tr class="odd">
1015
+ <td>geom_text</td>
1016
+ <td>✓</td>
1017
+ </tr>
1018
+ <tr class="even">
1019
+ <td>geom_boxplot</td>
1020
+ <td>✓</td>
1021
+ </tr>
1022
+ <tr class="odd">
1023
+ <td>Color/fill aesthetics</td>
1024
+ <td>✓</td>
1025
+ </tr>
1026
+ <tr class="even">
1027
+ <td>Legends (auto-generated)</td>
1028
+ <td>✓</td>
1029
+ </tr>
1030
+ <tr class="odd">
1031
+ <td>facet_wrap, facet_grid</td>
1032
+ <td>✓</td>
1033
+ </tr>
1034
+ <tr class="even">
1035
+ <td>Titles, subtitles, captions</td>
1036
+ <td>✓</td>
1037
+ </tr>
1038
+ <tr class="odd">
1039
+ <td>Theme auto-detection</td>
1040
+ <td>✓</td>
1041
+ </tr>
1042
+ <tr class="even">
1043
+ <td>Optimized color mapping</td>
1044
+ <td>✓</td>
1045
+ </tr>
1046
+ <tr class="odd">
1047
+ <td>Multiple canvas types</td>
1048
+ <td>✓</td>
1049
+ </tr>
1050
+ <tr class="even">
1051
+ <td>geom_tile (heatmaps)</td>
1052
+ <td>Planned</td>
1053
+ </tr>
1054
+ <tr class="odd">
1055
+ <td>geom_violin</td>
1056
+ <td>Planned</td>
1057
+ </tr>
1058
+ </tbody>
1059
+ </table>
1060
+ </div>
1061
+
1062
+
1063
+
1064
+ <!-- code folding -->
1065
+
1066
+
1067
+ <!-- dynamically load mathjax for compatibility with self-contained -->
1068
+ <script>
1069
+ (function () {
1070
+ var script = document.createElement("script");
1071
+ script.type = "text/javascript";
1072
+ script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
1073
+ document.getElementsByTagName("head")[0].appendChild(script);
1074
+ })();
1075
+ </script>
1076
+
1077
+ </body>
1078
+ </html>