charty 0.1.1.dev → 0.1.2.dev

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb9fdb9e499c1493700ffba1db8561e29e26eddbc8842d394b5e6ac26ccf7a1f
4
- data.tar.gz: 0f05d86efa78d95d7c7b20e8369e18acec052a81565b030d9e69d050a7b09009
3
+ metadata.gz: 54087a2074b21cdf538ddee1b9d0ccabe9f0db4d1939fd5a0bfc9ccef72b9291
4
+ data.tar.gz: 395573961358329d157307f8e6aa69c6ee748b1b289a8e373cc99a5c651cbc84
5
5
  SHA512:
6
- metadata.gz: 43f1f5663637f044b95b32f3600478933f0ceb5b6b75869577af9e04361893fc08a6a1ed69c3c8d3a35d22074ee9069a350faeb3f4547844a203c75e25b92cc4
7
- data.tar.gz: 4a5851e82336d73dbbf838f5451350ccbb1f951008bd5b2cd2a7538f15bff4ce3ecdd6e73d1a3ac4d5cd7d545a84ff5bf6b27d3888030a1f4c81c01b04a617f9
6
+ metadata.gz: 77cd8d3e39e7e8101799728941e8267ad12916fd55181623209ba47111be7507048f62a175b4ffa2c86f61bc5e9156ccd46231be91f9c948a4df810a3f988ba6
7
+ data.tar.gz: db0efb32e5d3fee2f51ea8e3e33348c0202a9657511801de29413123aa9632a21d73e4f673b4058fe5c345604b903c3bc662608c39b958d7118016f74c93d2d0
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Charty - Visualizing your data in Ruby
2
2
 
3
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/red-data-tools/charty/master?filepath=iris_dataset.ipynb)
4
+
3
5
  Charty is open-source Ruby library for visualizing your data in a simple way.
4
6
  In Charty, you need to write very few lines of code for representing what you want to do.
5
7
  It lets you focus on your analysis of data, instead of plotting.
@@ -8,7 +10,14 @@ It lets you focus on your analysis of data, instead of plotting.
8
10
 
9
11
  ## Installation
10
12
 
11
- To be described later.
13
+ ### With Matplotlib
14
+
15
+ ```
16
+ sudo gem install charty --pre
17
+ sudo gem install matplotlib
18
+ sudo apt install python3-pip
19
+ sudo python3 -m pip install -U pip matplotlib
20
+ ```
12
21
 
13
22
  ## Usage
14
23
 
@@ -0,0 +1,3 @@
1
+ ARG BASE_IMAGE_TAG=c9ca70040856
2
+ FROM rubydata/minimal-notebook:$BASE_IMAGE_TAG
3
+ ADD examples/*.ipynb ./
@@ -0,0 +1,702 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Example usage of Charty"
8
+ ]
9
+ },
10
+ {
11
+ "cell_type": "markdown",
12
+ "metadata": {},
13
+ "source": [
14
+ "Read Iris dataset as an `Arrow::Table` object."
15
+ ]
16
+ },
17
+ {
18
+ "cell_type": "code",
19
+ "execution_count": 1,
20
+ "metadata": {
21
+ "scrolled": false
22
+ },
23
+ "outputs": [
24
+ {
25
+ "data": {
26
+ "application/javascript": [
27
+ "if(window['d3'] === undefined ||\n",
28
+ " window['Nyaplot'] === undefined){\n",
29
+ " var path = {\"d3\":\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\",\"downloadable\":\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\"};\n",
30
+ "\n",
31
+ "\n",
32
+ "\n",
33
+ " var shim = {\"d3\":{\"exports\":\"d3\"},\"downloadable\":{\"exports\":\"downloadable\"}};\n",
34
+ "\n",
35
+ " require.config({paths: path, shim:shim});\n",
36
+ "\n",
37
+ "\n",
38
+ "require(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\n",
39
+ "\n",
40
+ "\tvar script = d3.select(\"head\")\n",
41
+ "\t .append(\"script\")\n",
42
+ "\t .attr(\"src\", \"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\")\n",
43
+ "\t .attr(\"async\", true);\n",
44
+ "\n",
45
+ "\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\n",
46
+ "\n",
47
+ "\n",
48
+ "\t var event = document.createEvent(\"HTMLEvents\");\n",
49
+ "\t event.initEvent(\"load_nyaplot\",false,false);\n",
50
+ "\t window.dispatchEvent(event);\n",
51
+ "\t console.log('Finished loading Nyaplotjs');\n",
52
+ "\n",
53
+ "\t};\n",
54
+ "\n",
55
+ "\n",
56
+ "});});\n",
57
+ "}\n"
58
+ ],
59
+ "text/plain": [
60
+ "\"if(window['d3'] === undefined ||\\n window['Nyaplot'] === undefined){\\n var path = {\\\"d3\\\":\\\"https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min\\\",\\\"downloadable\\\":\\\"http://cdn.rawgit.com/domitry/d3-downloadable/master/d3-downloadable\\\"};\\n\\n\\n\\n var shim = {\\\"d3\\\":{\\\"exports\\\":\\\"d3\\\"},\\\"downloadable\\\":{\\\"exports\\\":\\\"downloadable\\\"}};\\n\\n require.config({paths: path, shim:shim});\\n\\n\\nrequire(['d3'], function(d3){window['d3']=d3;console.log('finished loading d3');require(['downloadable'], function(downloadable){window['downloadable']=downloadable;console.log('finished loading downloadable');\\n\\n\\tvar script = d3.select(\\\"head\\\")\\n\\t .append(\\\"script\\\")\\n\\t .attr(\\\"src\\\", \\\"http://cdn.rawgit.com/domitry/Nyaplotjs/master/release/nyaplot.js\\\")\\n\\t .attr(\\\"async\\\", true);\\n\\n\\tscript[0][0].onload = script[0][0].onreadystatechange = function(){\\n\\n\\n\\t var event = document.createEvent(\\\"HTMLEvents\\\");\\n\\t event.initEvent(\\\"load_nyaplot\\\",false,false);\\n\\t window.dispatchEvent(event);\\n\\t console.log('Finished loading Nyaplotjs');\\n\\n\\t};\\n\\n\\n});});\\n}\\n\""
61
+ ]
62
+ },
63
+ "metadata": {},
64
+ "output_type": "display_data"
65
+ },
66
+ {
67
+ "data": {
68
+ "text/html": [
69
+ "<b> Daru::DataFrame(150x5) </b>\n",
70
+ "<table>\n",
71
+ " <thead>\n",
72
+ " \n",
73
+ " <tr>\n",
74
+ " <th></th>\n",
75
+ " \n",
76
+ " <th>sepal_length</th>\n",
77
+ " \n",
78
+ " <th>sepal_width</th>\n",
79
+ " \n",
80
+ " <th>petal_length</th>\n",
81
+ " \n",
82
+ " <th>petal_width</th>\n",
83
+ " \n",
84
+ " <th>label</th>\n",
85
+ " \n",
86
+ " </tr>\n",
87
+ " \n",
88
+ "</thead>\n",
89
+ " <tbody>\n",
90
+ " \n",
91
+ " <tr>\n",
92
+ " <td>0</td>\n",
93
+ " \n",
94
+ " <td>5.1</td>\n",
95
+ " \n",
96
+ " <td>3.5</td>\n",
97
+ " \n",
98
+ " <td>1.4</td>\n",
99
+ " \n",
100
+ " <td>0.2</td>\n",
101
+ " \n",
102
+ " <td>Iris-setosa</td>\n",
103
+ " \n",
104
+ " </tr>\n",
105
+ " \n",
106
+ " <tr>\n",
107
+ " <td>1</td>\n",
108
+ " \n",
109
+ " <td>4.9</td>\n",
110
+ " \n",
111
+ " <td>3.0</td>\n",
112
+ " \n",
113
+ " <td>1.4</td>\n",
114
+ " \n",
115
+ " <td>0.2</td>\n",
116
+ " \n",
117
+ " <td>Iris-setosa</td>\n",
118
+ " \n",
119
+ " </tr>\n",
120
+ " \n",
121
+ " <tr>\n",
122
+ " <td>2</td>\n",
123
+ " \n",
124
+ " <td>4.7</td>\n",
125
+ " \n",
126
+ " <td>3.2</td>\n",
127
+ " \n",
128
+ " <td>1.3</td>\n",
129
+ " \n",
130
+ " <td>0.2</td>\n",
131
+ " \n",
132
+ " <td>Iris-setosa</td>\n",
133
+ " \n",
134
+ " </tr>\n",
135
+ " \n",
136
+ " <tr>\n",
137
+ " <td>3</td>\n",
138
+ " \n",
139
+ " <td>4.6</td>\n",
140
+ " \n",
141
+ " <td>3.1</td>\n",
142
+ " \n",
143
+ " <td>1.5</td>\n",
144
+ " \n",
145
+ " <td>0.2</td>\n",
146
+ " \n",
147
+ " <td>Iris-setosa</td>\n",
148
+ " \n",
149
+ " </tr>\n",
150
+ " \n",
151
+ " <tr>\n",
152
+ " <td>4</td>\n",
153
+ " \n",
154
+ " <td>5.0</td>\n",
155
+ " \n",
156
+ " <td>3.6</td>\n",
157
+ " \n",
158
+ " <td>1.4</td>\n",
159
+ " \n",
160
+ " <td>0.2</td>\n",
161
+ " \n",
162
+ " <td>Iris-setosa</td>\n",
163
+ " \n",
164
+ " </tr>\n",
165
+ " \n",
166
+ " <tr>\n",
167
+ " <td>5</td>\n",
168
+ " \n",
169
+ " <td>5.4</td>\n",
170
+ " \n",
171
+ " <td>3.9</td>\n",
172
+ " \n",
173
+ " <td>1.7</td>\n",
174
+ " \n",
175
+ " <td>0.4</td>\n",
176
+ " \n",
177
+ " <td>Iris-setosa</td>\n",
178
+ " \n",
179
+ " </tr>\n",
180
+ " \n",
181
+ " <tr>\n",
182
+ " <td>6</td>\n",
183
+ " \n",
184
+ " <td>4.6</td>\n",
185
+ " \n",
186
+ " <td>3.4</td>\n",
187
+ " \n",
188
+ " <td>1.4</td>\n",
189
+ " \n",
190
+ " <td>0.3</td>\n",
191
+ " \n",
192
+ " <td>Iris-setosa</td>\n",
193
+ " \n",
194
+ " </tr>\n",
195
+ " \n",
196
+ " <tr>\n",
197
+ " <td>7</td>\n",
198
+ " \n",
199
+ " <td>5.0</td>\n",
200
+ " \n",
201
+ " <td>3.4</td>\n",
202
+ " \n",
203
+ " <td>1.5</td>\n",
204
+ " \n",
205
+ " <td>0.2</td>\n",
206
+ " \n",
207
+ " <td>Iris-setosa</td>\n",
208
+ " \n",
209
+ " </tr>\n",
210
+ " \n",
211
+ " <tr>\n",
212
+ " <td>8</td>\n",
213
+ " \n",
214
+ " <td>4.4</td>\n",
215
+ " \n",
216
+ " <td>2.9</td>\n",
217
+ " \n",
218
+ " <td>1.4</td>\n",
219
+ " \n",
220
+ " <td>0.2</td>\n",
221
+ " \n",
222
+ " <td>Iris-setosa</td>\n",
223
+ " \n",
224
+ " </tr>\n",
225
+ " \n",
226
+ " <tr>\n",
227
+ " <td>9</td>\n",
228
+ " \n",
229
+ " <td>4.9</td>\n",
230
+ " \n",
231
+ " <td>3.1</td>\n",
232
+ " \n",
233
+ " <td>1.5</td>\n",
234
+ " \n",
235
+ " <td>0.1</td>\n",
236
+ " \n",
237
+ " <td>Iris-setosa</td>\n",
238
+ " \n",
239
+ " </tr>\n",
240
+ " \n",
241
+ " <tr>\n",
242
+ " <td>10</td>\n",
243
+ " \n",
244
+ " <td>5.4</td>\n",
245
+ " \n",
246
+ " <td>3.7</td>\n",
247
+ " \n",
248
+ " <td>1.5</td>\n",
249
+ " \n",
250
+ " <td>0.2</td>\n",
251
+ " \n",
252
+ " <td>Iris-setosa</td>\n",
253
+ " \n",
254
+ " </tr>\n",
255
+ " \n",
256
+ " <tr>\n",
257
+ " <td>11</td>\n",
258
+ " \n",
259
+ " <td>4.8</td>\n",
260
+ " \n",
261
+ " <td>3.4</td>\n",
262
+ " \n",
263
+ " <td>1.6</td>\n",
264
+ " \n",
265
+ " <td>0.2</td>\n",
266
+ " \n",
267
+ " <td>Iris-setosa</td>\n",
268
+ " \n",
269
+ " </tr>\n",
270
+ " \n",
271
+ " <tr>\n",
272
+ " <td>12</td>\n",
273
+ " \n",
274
+ " <td>4.8</td>\n",
275
+ " \n",
276
+ " <td>3.0</td>\n",
277
+ " \n",
278
+ " <td>1.4</td>\n",
279
+ " \n",
280
+ " <td>0.1</td>\n",
281
+ " \n",
282
+ " <td>Iris-setosa</td>\n",
283
+ " \n",
284
+ " </tr>\n",
285
+ " \n",
286
+ " <tr>\n",
287
+ " <td>13</td>\n",
288
+ " \n",
289
+ " <td>4.3</td>\n",
290
+ " \n",
291
+ " <td>3.0</td>\n",
292
+ " \n",
293
+ " <td>1.1</td>\n",
294
+ " \n",
295
+ " <td>0.1</td>\n",
296
+ " \n",
297
+ " <td>Iris-setosa</td>\n",
298
+ " \n",
299
+ " </tr>\n",
300
+ " \n",
301
+ " <tr>\n",
302
+ " <td>14</td>\n",
303
+ " \n",
304
+ " <td>5.8</td>\n",
305
+ " \n",
306
+ " <td>4.0</td>\n",
307
+ " \n",
308
+ " <td>1.2</td>\n",
309
+ " \n",
310
+ " <td>0.2</td>\n",
311
+ " \n",
312
+ " <td>Iris-setosa</td>\n",
313
+ " \n",
314
+ " </tr>\n",
315
+ " \n",
316
+ " <tr>\n",
317
+ " <td>15</td>\n",
318
+ " \n",
319
+ " <td>5.7</td>\n",
320
+ " \n",
321
+ " <td>4.4</td>\n",
322
+ " \n",
323
+ " <td>1.5</td>\n",
324
+ " \n",
325
+ " <td>0.4</td>\n",
326
+ " \n",
327
+ " <td>Iris-setosa</td>\n",
328
+ " \n",
329
+ " </tr>\n",
330
+ " \n",
331
+ " <tr>\n",
332
+ " <td>16</td>\n",
333
+ " \n",
334
+ " <td>5.4</td>\n",
335
+ " \n",
336
+ " <td>3.9</td>\n",
337
+ " \n",
338
+ " <td>1.3</td>\n",
339
+ " \n",
340
+ " <td>0.4</td>\n",
341
+ " \n",
342
+ " <td>Iris-setosa</td>\n",
343
+ " \n",
344
+ " </tr>\n",
345
+ " \n",
346
+ " <tr>\n",
347
+ " <td>17</td>\n",
348
+ " \n",
349
+ " <td>5.1</td>\n",
350
+ " \n",
351
+ " <td>3.5</td>\n",
352
+ " \n",
353
+ " <td>1.4</td>\n",
354
+ " \n",
355
+ " <td>0.3</td>\n",
356
+ " \n",
357
+ " <td>Iris-setosa</td>\n",
358
+ " \n",
359
+ " </tr>\n",
360
+ " \n",
361
+ " <tr>\n",
362
+ " <td>18</td>\n",
363
+ " \n",
364
+ " <td>5.7</td>\n",
365
+ " \n",
366
+ " <td>3.8</td>\n",
367
+ " \n",
368
+ " <td>1.7</td>\n",
369
+ " \n",
370
+ " <td>0.3</td>\n",
371
+ " \n",
372
+ " <td>Iris-setosa</td>\n",
373
+ " \n",
374
+ " </tr>\n",
375
+ " \n",
376
+ " <tr>\n",
377
+ " <td>19</td>\n",
378
+ " \n",
379
+ " <td>5.1</td>\n",
380
+ " \n",
381
+ " <td>3.8</td>\n",
382
+ " \n",
383
+ " <td>1.5</td>\n",
384
+ " \n",
385
+ " <td>0.3</td>\n",
386
+ " \n",
387
+ " <td>Iris-setosa</td>\n",
388
+ " \n",
389
+ " </tr>\n",
390
+ " \n",
391
+ " <tr>\n",
392
+ " <td>20</td>\n",
393
+ " \n",
394
+ " <td>5.4</td>\n",
395
+ " \n",
396
+ " <td>3.4</td>\n",
397
+ " \n",
398
+ " <td>1.7</td>\n",
399
+ " \n",
400
+ " <td>0.2</td>\n",
401
+ " \n",
402
+ " <td>Iris-setosa</td>\n",
403
+ " \n",
404
+ " </tr>\n",
405
+ " \n",
406
+ " <tr>\n",
407
+ " <td>21</td>\n",
408
+ " \n",
409
+ " <td>5.1</td>\n",
410
+ " \n",
411
+ " <td>3.7</td>\n",
412
+ " \n",
413
+ " <td>1.5</td>\n",
414
+ " \n",
415
+ " <td>0.4</td>\n",
416
+ " \n",
417
+ " <td>Iris-setosa</td>\n",
418
+ " \n",
419
+ " </tr>\n",
420
+ " \n",
421
+ " <tr>\n",
422
+ " <td>22</td>\n",
423
+ " \n",
424
+ " <td>4.6</td>\n",
425
+ " \n",
426
+ " <td>3.6</td>\n",
427
+ " \n",
428
+ " <td>1.0</td>\n",
429
+ " \n",
430
+ " <td>0.2</td>\n",
431
+ " \n",
432
+ " <td>Iris-setosa</td>\n",
433
+ " \n",
434
+ " </tr>\n",
435
+ " \n",
436
+ " <tr>\n",
437
+ " <td>23</td>\n",
438
+ " \n",
439
+ " <td>5.1</td>\n",
440
+ " \n",
441
+ " <td>3.3</td>\n",
442
+ " \n",
443
+ " <td>1.7</td>\n",
444
+ " \n",
445
+ " <td>0.5</td>\n",
446
+ " \n",
447
+ " <td>Iris-setosa</td>\n",
448
+ " \n",
449
+ " </tr>\n",
450
+ " \n",
451
+ " <tr>\n",
452
+ " <td>24</td>\n",
453
+ " \n",
454
+ " <td>4.8</td>\n",
455
+ " \n",
456
+ " <td>3.4</td>\n",
457
+ " \n",
458
+ " <td>1.9</td>\n",
459
+ " \n",
460
+ " <td>0.2</td>\n",
461
+ " \n",
462
+ " <td>Iris-setosa</td>\n",
463
+ " \n",
464
+ " </tr>\n",
465
+ " \n",
466
+ " <tr>\n",
467
+ " <td>25</td>\n",
468
+ " \n",
469
+ " <td>5.0</td>\n",
470
+ " \n",
471
+ " <td>3.0</td>\n",
472
+ " \n",
473
+ " <td>1.6</td>\n",
474
+ " \n",
475
+ " <td>0.2</td>\n",
476
+ " \n",
477
+ " <td>Iris-setosa</td>\n",
478
+ " \n",
479
+ " </tr>\n",
480
+ " \n",
481
+ " <tr>\n",
482
+ " <td>26</td>\n",
483
+ " \n",
484
+ " <td>5.0</td>\n",
485
+ " \n",
486
+ " <td>3.4</td>\n",
487
+ " \n",
488
+ " <td>1.6</td>\n",
489
+ " \n",
490
+ " <td>0.4</td>\n",
491
+ " \n",
492
+ " <td>Iris-setosa</td>\n",
493
+ " \n",
494
+ " </tr>\n",
495
+ " \n",
496
+ " <tr>\n",
497
+ " <td>27</td>\n",
498
+ " \n",
499
+ " <td>5.2</td>\n",
500
+ " \n",
501
+ " <td>3.5</td>\n",
502
+ " \n",
503
+ " <td>1.5</td>\n",
504
+ " \n",
505
+ " <td>0.2</td>\n",
506
+ " \n",
507
+ " <td>Iris-setosa</td>\n",
508
+ " \n",
509
+ " </tr>\n",
510
+ " \n",
511
+ " <tr>\n",
512
+ " <td>28</td>\n",
513
+ " \n",
514
+ " <td>5.2</td>\n",
515
+ " \n",
516
+ " <td>3.4</td>\n",
517
+ " \n",
518
+ " <td>1.4</td>\n",
519
+ " \n",
520
+ " <td>0.2</td>\n",
521
+ " \n",
522
+ " <td>Iris-setosa</td>\n",
523
+ " \n",
524
+ " </tr>\n",
525
+ " \n",
526
+ " <tr>\n",
527
+ " <td>29</td>\n",
528
+ " \n",
529
+ " <td>4.7</td>\n",
530
+ " \n",
531
+ " <td>3.2</td>\n",
532
+ " \n",
533
+ " <td>1.6</td>\n",
534
+ " \n",
535
+ " <td>0.2</td>\n",
536
+ " \n",
537
+ " <td>Iris-setosa</td>\n",
538
+ " \n",
539
+ " </tr>\n",
540
+ " \n",
541
+ "\n",
542
+ " \n",
543
+ " <tr>\n",
544
+ " \n",
545
+ " <td>...</td>\n",
546
+ " \n",
547
+ " <td>...</td>\n",
548
+ " \n",
549
+ " <td>...</td>\n",
550
+ " \n",
551
+ " <td>...</td>\n",
552
+ " \n",
553
+ " <td>...</td>\n",
554
+ " \n",
555
+ " <td>...</td>\n",
556
+ " \n",
557
+ " </tr>\n",
558
+ "\n",
559
+ " \n",
560
+ "\n",
561
+ " <tr>\n",
562
+ " <td>149</td>\n",
563
+ " \n",
564
+ " <td>5.9</td>\n",
565
+ " \n",
566
+ " <td>3.0</td>\n",
567
+ " \n",
568
+ " <td>5.1</td>\n",
569
+ " \n",
570
+ " <td>1.8</td>\n",
571
+ " \n",
572
+ " <td>Iris-virginica</td>\n",
573
+ " \n",
574
+ " </tr>\n",
575
+ " \n",
576
+ "</tbody>\n",
577
+ "</table>"
578
+ ],
579
+ "text/plain": [
580
+ "#<Daru::DataFrame(150x5)>\n",
581
+ " sepal_leng sepal_widt petal_leng petal_widt label\n",
582
+ " 0 5.1 3.5 1.4 0.2 Iris-setos\n",
583
+ " 1 4.9 3.0 1.4 0.2 Iris-setos\n",
584
+ " 2 4.7 3.2 1.3 0.2 Iris-setos\n",
585
+ " 3 4.6 3.1 1.5 0.2 Iris-setos\n",
586
+ " 4 5.0 3.6 1.4 0.2 Iris-setos\n",
587
+ " 5 5.4 3.9 1.7 0.4 Iris-setos\n",
588
+ " 6 4.6 3.4 1.4 0.3 Iris-setos\n",
589
+ " 7 5.0 3.4 1.5 0.2 Iris-setos\n",
590
+ " 8 4.4 2.9 1.4 0.2 Iris-setos\n",
591
+ " 9 4.9 3.1 1.5 0.1 Iris-setos\n",
592
+ " 10 5.4 3.7 1.5 0.2 Iris-setos\n",
593
+ " 11 4.8 3.4 1.6 0.2 Iris-setos\n",
594
+ " 12 4.8 3.0 1.4 0.1 Iris-setos\n",
595
+ " 13 4.3 3.0 1.1 0.1 Iris-setos\n",
596
+ " 14 5.8 4.0 1.2 0.2 Iris-setos\n",
597
+ " ... ... ... ... ... ..."
598
+ ]
599
+ },
600
+ "execution_count": 1,
601
+ "metadata": {},
602
+ "output_type": "execute_result"
603
+ }
604
+ ],
605
+ "source": [
606
+ "require \"datasets-daru\"\n",
607
+ "\n",
608
+ "iris = Datasets::Iris.new.to_daru"
609
+ ]
610
+ },
611
+ {
612
+ "cell_type": "markdown",
613
+ "metadata": {},
614
+ "source": [
615
+ "Setting up Charty with Matplotlib backend."
616
+ ]
617
+ },
618
+ {
619
+ "cell_type": "code",
620
+ "execution_count": 2,
621
+ "metadata": {},
622
+ "outputs": [
623
+ {
624
+ "data": {
625
+ "text/plain": [
626
+ "[:inline, \"module://ruby.matplotlib.backend_inline\"]"
627
+ ]
628
+ },
629
+ "execution_count": 2,
630
+ "metadata": {},
631
+ "output_type": "execute_result"
632
+ }
633
+ ],
634
+ "source": [
635
+ "require 'charty'\n",
636
+ "\n",
637
+ "charty = Charty::Plotter.new(:matplot)\n",
638
+ "Charty::Matplot.activate_iruby_integration"
639
+ ]
640
+ },
641
+ {
642
+ "cell_type": "markdown",
643
+ "metadata": {},
644
+ "source": [
645
+ "Show scatterplot of the relationship between Petal Length and Petal Width."
646
+ ]
647
+ },
648
+ {
649
+ "cell_type": "code",
650
+ "execution_count": 3,
651
+ "metadata": {
652
+ "scrolled": false
653
+ },
654
+ "outputs": [
655
+ {
656
+ "data": {
657
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjoAAAG0CAYAAAA7Go31AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XtcVHX+P/DXcAcRvORwSRRKpcBMESzMCyRe29LKpPKC2laskZtkmVm/tHLRtdT89g3TbVFzNU2sL5WRtAKa2npFTfCyhkIKkVrgFWQ4vz8mJkbmfubMmTnzej4e86g5l8/5nBPJ23M+5/NSCYIggIiIiEiBPOTuABEREZFUWOgQERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFDhERESkWCx0iIiJSLBY6REREpFgsdIiIiEixWOgQERGRYrHQISIiIsXykrsDjtbU1IRz586hbdu2UKlUcneHiIiILCAIAi5duoTw8HB4eFh+n8btCp1z584hIiJC7m4QERGRDSorK9G5c2eLt3e7Qqdt27YAtBcqKChI5t4QERGRJerq6hAREaH7PW4ptyt0mh9XBQUFsdAhIiJyMdYOO+FgZCIiIlIsFjpERESkWCx0iIiISLHcboyOpTQaDW7cuCF3N8hFeHt7w9PTU+5uEBHRTVjo3EQQBFRXV+O3336TuyvkYtq1a4fQ0FDOz0RE5ERY6NykuchRq9UICAjgLy0ySxAEXL16FTU1NQCAsLAwmXtERETNWOi0oNFodEVOx44d5e4OuRB/f38AQE1NDdRqNR9jERE5CQ5GbqF5TE5AQIDMPSFX1Pxzw7FdRETOg4WOAXxcRbbgzw0RkfNhoUNERESKxULHjahUKnz++edyd4OIiMhhWOgoxOTJkzFmzBiT21RVVWHkyJEO6pG+uXPnonfv3rIcm4iI3BffupKIpknAnvKLqLl0Heq2fugX1QGeHvKM4WhoaICPjw9CQ0NlOT4RkaNpmjQ4UHMAv1z9BZ0COiFOHQdPD/u8DWmqbSmPS7aR9Y5OVlYWEhIS0LZtW6jVaowZMwbHjx83uU9RURFUKlWrz7FjxxzUa/Pyf6jCgIXb8MTK7/HXT0rwxMrvMWDhNuT/UOWQ4yclJSEjIwOZmZm45ZZbMHToUAD6j64aGhqQkZGBsLAw+Pn5ITIyEllZWUbbNLd9bW0tnnnmGajVagQFBeH+++/HoUOHAACrVq3CvHnzcOjQId1/r1WrVgEAKioqMHr0aAQGBiIoKAjjxo3Dzz//rGv30KFDSE5ORtu2bREUFIS+ffti3759AIALFy7giSeeQOfOnREQEIC77roL69evt+u1JCLX8+2ZbzE8dzimfjMVs3bMwtRvpmJ47nB8e+ZbSduW8rhkO1nv6BQXF+O5555DQkICGhsbMWfOHAwbNgylpaVo06aNyX2PHz+OoKAg3fdOnTpJ3V2L5P9Qhb+sPQDhpuXVtdfxl7UHkD0hDiN6Sj+h3OrVq/GXv/wFO3fuhCDc3Btg2bJlyMvLw8aNG9GlSxdUVlaisrLSaHumthcEAQ888AA6dOiALVu2IDg4GB9++CGGDBmCEydOIDU1FT/88APy8/Px7bfa/+GDg4MhCALGjBmDNm3aoLi4GI2NjZg2bRpSU1NRVFQEABg/fjz69OmD7OxseHp6oqSkBN7e3gCA69evo2/fvpg1axaCgoLw1VdfYeLEibjttttwzz332PmKEpEr+PbMt8gsyoRw05/CNVdrkFmUicVJi5HSNcXubc8ommFwH3scl8SRtdDJz8/X+56TkwO1Wo39+/dj0KBBJvdVq9Vo166dlN2zmqZJwLwvSlsVOQAgAFABmPdFKYbGhEr+GKtbt274+9//bnR9RUUFunfvjgEDBkClUqFr164m2zO1fWFhIY4cOYKamhr4+voCAN555x18/vnn2LRpE5555hkEBgbCy8tL7/FZQUEBDh8+jPLyckRERAAAPv74Y8TGxmLv3r1ISEhARUUFXnrpJdxxxx0AgO7du+v2v/XWWzFz5kzd9+effx75+fn49NNPWegQuSFNkwYL9ixoVYgAgAABKqiwcM9CJEckW/04yVzbxog9LonnVIORa2trAQAdOnQwu22fPn0QFhaGIUOGoLCw0Oh29fX1qKur0/tIZU/5RVTVXje6XgBQVXsde8ovStaHZvHx8SbXT548GSUlJYiOjsb06dOxdetW3br09HQEBgbqPua2379/Py5fvoyOHTvq7VdeXo5Tp04Z7UNZWRkiIiJ0RQ4AxMTEoF27digrKwMAZGZm4s9//jNSUlKwYMECvfY0Gg3mz5+PXr166Y69detWVFRUWHexiEgRDtQcwM9Xfza6XoCA6qvVOFBzwO5tmyLmuCSe0xQ6giAgMzMTAwYMQM+ePY1uFxYWhhUrViA3NxebN29GdHQ0hgwZgu3btxvcPisrC8HBwbpPy1+q9lZzyXiRY8t2Yph79BcXF4fy8nK89dZbuHbtGsaNG4exY8cCAN58802UlJToPua2b2pqQlhYmN4+JSUlOH78OF566SWjfRAEweAkey2Xz507F0ePHsUDDzyAbdu2ISYmBp999hkA4N1338WSJUvw8ssvY9u2bSgpKcHw4cPR0NBg/QUjIpf3y9Vf7Lqd2H2kaIOs5zRvXWVkZODw4cP47rvvTG4XHR2N6Oho3ffExERUVlbinXfeMfi4a/bs2cjMzNR9r6urk6zYUbf1s+t2UgsKCkJqaipSU1MxduxYjBgxAhcvXoRarYZarbZ4+7i4OFRXV8PLywuRkZEGj+Xj4wONRqO3LCYmBhUVFaisrNT9NyktLUVtbS3uvPNO3XY9evRAjx49MGPGDDzxxBPIycnBww8/jB07dmD06NGYMGECAG3BdfLkSb19ich9dAqwbKympduJ3UeKNsh6TnFH5/nnn0deXh4KCwvRuXNnq/e/9957cfLkSYPrfH19ERQUpPeRSr+oDggL9oOx0TcqAGHB2lfN5bZkyRJ88sknOHbsGE6cOIFPP/0UoaGhRsc9mdo+JSUFiYmJGDNmDL755hucPn0au3btwmuvvaZ7QyoyMhLl5eUoKSnB+fPnUV9fj5SUFPTq1Qvjx4/HgQMHsGfPHkyaNAmDBw9GfHw8rl27hoyMDBQVFeHMmTPYuXMn9u7dqytkunXrhoKCAuzatQtlZWV49tlnUV1d7bBrSETOJU4dh5CAEKiM/CmsggqhAaGIU8fZvW1TxByXxJO10BEEARkZGdi8eTO2bduGqKgom9o5ePAgwsKkf5PJHE8PFd54MAYAWv2v0Pz9jQdjZJtPp6XAwEAsXLgQ8fHxSEhIwOnTp7FlyxZ4eBj+kTC1vUqlwpYtWzBo0CBMnToVPXr0wOOPP47Tp08jJCQEAPDoo49ixIgRSE5ORqdOnbB+/Xrd6+7t27fHoEGDkJKSgttuuw0bNmwAAHh6euLChQuYNGkSevTogXHjxmHkyJGYN28eAOD1119HXFwchg8fjqSkJISGhpqdNJGIlMvTwxOv9HsFAFoVJM3fZ/WbZdOAYEvaluK4JJ5KMPTusYNMmzYN69atw//93//pPY4KDg6Gv78/AO2jp7Nnz2LNmjUAgKVLlyIyMhKxsbFoaGjA2rVrsWDBAuTm5uKRRx4xe8y6ujoEBwejtra21d2d69evo7y8HFFRUfDzs/3xUv4PVZj3RanewOSwYD+88WCMQ14tJ3nY6+eHiMT59sy3WLBngd7g4dCAUMzqN0v0K96m2gYg2XHJ9O9vU2Qdo5OdnQ1AO8FdSzk5OZg8eTIAbWxBy7doGhoaMHPmTJw9exb+/v6IjY3FV199hVGjRjmq22aN6BmGoTGhTjMzMhGRO0npmoLkiGRJZig217ZUxyXbyXpHRw6OuKND7ok/P0RE0rH1jo5TDEYmIiIikgILHSIiIlIsp5lHh4iInI+zpnE3NDZgw4kNqKyrRERQBFJ7pMLHy0fubpETYqFDREQGGXrDKCQgBK/0e0XWt4gW71uM1aWr0SQ06Za9s+8dpMWkITM+08Se5I746IqIiFppTuq+Od+pOY372zPfytKvxfsWI+dojl6RAwBNQhNyjuZg8b7FsvSLnBcLHSIi0mNJUvfCPQuhadK0Wi+lhsYGrC5dbXKb1aWr0dDIvDv6AwsdIiLSI2UKuBgbTmxodSfnZk1CEzac2OCgHpErYKHjRpojF1zJ3Llz0bt3b6dtj0iJpEwBF6OyrtKu25F7YKGjEJMnTzab81RVVYWRI0c6qEf2MXPmTPz73/+WuxtEbkXKFHAxIoIi7LoduQcWOlJp0gDlO4Ajm7T/dPCz7JYaGrTPq0NDQ+Hr6ytbP26m0WjQ1GT6NnRgYCA6duzooB5Z5saNG3J3gUhSUqaAi5HaIxUeKtO/tjxUHkjtkeqgHpErYKEjhdI8YGlPYPWfgNyntP9c2lO73AGSkpKQkZGBzMxM3HLLLRg6dCgA/UdXDQ0NyMjIQFhYGPz8/BAZGYmsrCyjbSYmJuKVV17RW/bLL7/A29sbhYWFujZffvll3HrrrWjTpg3uueceFBUV6bZftWoV2rVrhy+//BIxMTHw9fXFmTNnUFRUhH79+qFNmzZo164d7rvvPpw5cwaA4UdN//znPxEbGwtfX1+EhYUhIyNDt66iogKjR49GYGAggoKCMG7cOPz8s/GxBk1NTXjzzTfRuXNn+Pr6onfv3sjPz9etP336NFQqFTZu3IikpCT4+flh7dq1pi4/kcuTMgVcDB8vH6TFpJncJi0mjfPpkB4WOvZWmgdsnATUndNfXlelXe6gYmf16tXw8vLCzp078eGHH7Zav2zZMuTl5WHjxo04fvw41q5di8jISKPtjR8/HuvXr0fLaLQNGzYgJCQEgwcPBgBMmTIFO3fuxCeffILDhw/jsccew4gRI3Dy5EndPlevXkVWVhb+8Y9/4OjRo+jQoQPGjBmDwYMH4/Dhw9i9ezeeeeYZqFSG/yaZnZ2N5557Ds888wyOHDmCvLw8dOvWDQAgCALGjBmDixcvori4GAUFBTh16hRSU43/7e69997Du+++i3feeQeHDx/G8OHD8dBDD+n1GQBmzZqF6dOno6ysDMOHDzfaHpFSpHRNweKkxVAHqPWWhwSEYHHSYtnm0cmMz8SU2Cmt7ux4qDwwJXYK59Gh1gQ3U1tbKwAQamtrW627du2aUFpaKly7ds22xjWNgvDuHYLwRpCRT7AgvHundjs7S0tLE0aPHi0IgiAMHjxY6N27d6ttAAifffaZIAiC8Pzzzwv333+/0NTUZFH7NTU1gpeXl7B9+3bdssTEROGll14SBEEQ/vvf/woqlUo4e/as3n5DhgwRZs+eLQiCIOTk5AgAhJKSEt36CxcuCACEoqIig8d94403hLvvvlv3PTw8XJgzZ47Bbbdu3Sp4enoKFRUVumVHjx4VAAh79uwx2t78+fP12klISBCmTZsmCIIglJeXCwCEpUuXGrkyfxD980PkhBo1jcKeqj3CV6e+EvZU7REaJfjzyxb1N+qFNUfXCPN3zxfWHF0j1N+ol7tLJDFTv79N4czI9nRmV+s7OXoEoO6sdruogZJ2JT4+3uT6yZMnY+jQoYiOjsaIESPwpz/9CcOGDQMApKen6z2euXz5Mjp16oShQ4fiX//6FwYOHIjy8nLs3r0b2dnZAIADBw5AEAT06NFD7zj19fV6Y2x8fHzQq1cv3fcOHTpg8uTJGD58OIYOHYqUlBSMGzcOYWFhrfpcU1ODc+fOYciQIQbPqaysDBEREYiI+GMgYkxMDNq1a4eysjIkJCTobV9XV4dz587hvvvu01t+33334dChQ3rLzF1PIqXy9PBEQmiC+Q0dzMfLBxNjJsrdDXIBfHRlT5eNjwWxaTsR2rRpY3J9XFwcysvL8dZbb+HatWsYN24cxo4dCwB48803UVJSovs0Gz9+PDZt2oQbN25g3bp1iI2Nxd133w1AO9bF09MT+/fv19u3rKwM7733nq4Nf3//Vo+lcnJysHv3bvTv3x8bNmxAjx498P3337fqs7+/v8lzEgTB4CMvY8ub3bzO0PbmricRETkn3tGxp8AQ+24nsaCgIKSmpiI1NRVjx47FiBEjcPHiRajVaqjV6lbbjxkzBs8++yzy8/Oxbt06TJz4x9+m+vTpA41Gg5qaGgwcaP3dqj59+qBPnz6YPXs2EhMTsW7dOtx7771627Rt2xaRkZH497//jeTk5FZtxMTEoKKiApWVlbq7OqWlpaitrcWdd95p8PzDw8Px3XffYdCgQbrlu3btQr9+/aw+ByIlMhfqKWa9lIGhYtqWa19X5eznzELHnrr2B4LCtQOPDUydDqi067v2d3TPWlmyZAnCwsLQu3dveHh44NNPP0VoaCjatWtndJ82bdpg9OjReP3111FWVoYnn3xSt65Hjx4YP348Jk2ahHfffRd9+vTB+fPnsW3bNtx1110YNWqUwTbLy8uxYsUKPPTQQwgPD8fx48dx4sQJTJo0yeD2c+fORXp6OtRqNUaOHIlLly5h586deP7555GSkoJevXph/PjxWLp0KRobGzFt2jQMHjzY6KOnl156CW+88QZuv/129O7dGzk5OSgpKcG//vUvK64mkTKZC/UUsx6AZIGhYsJI5drXVbnCOfPRlT15eAIjFv7+5eZHJb9/H7FAu53MAgMDsXDhQsTHxyMhIQGnT5/Gli1b4OFh+kdi/PjxOHToEAYOHIguXbrorcvJycGkSZPw4osvIjo6Gg899BD+85//6I2ZuVlAQACOHTuGRx99FD169MAzzzyDjIwMPPvsswa3T0tLw9KlS/HBBx8gNjYWf/rTn3RvSDW/Pt++fXsMGjQIKSkpuO2227Bhg/Hp4KdPn44XX3wRL774Iu666y7k5+cjLy8P3bt3N3kdiJTOXKjn4n2LbV4/o2gGZhTNkCQwVEwYqVz7uipXOWeVIAiGbj0oVl1dHYKDg1FbW4ugoCC9ddevX0d5eTmioqLg5+dn+0FK84D8WfoDk4Nu1RY5MQ/Z3i45Nbv9/BDJTNOkwfDc4SbzrjxUHkZzp1RQQaVSmc2lMrZvSEAI8h/Nt/rxh7l+m2pbrn1dlRznbOr3tym8oyOFmIeAF34A0r4EHv1I+88XjrDIISKXYC7UE4DJIkaAYFOR07yvrYGhYsJI5drXVbnSOXOMjlQ8PCV/hZyISAqODuu0Vx/EhJHKta+rcqVz5h0dIiLS4+iwTnv1QUwYqVz7uipXOmcWOkREpMdcqCegHaNjKvTTXPimMWICQ8WEkcq1r6typXNmoUNERHrMhXqqoNKFaxoL/UyLSdNta2i9qX1tDQwVE0Yq176uypXOmYUOERG1Yi7UMzM+0+b1S5KWYEnSEkkCQ8WEkcq1r6tylXPm6+Ut8PVgEoM/P6REnBmZMyOb46hztvX1chY6LfAXFYnBnx8iIulwHh0iIiKim7DQcSPNEQlSiYyMxNKlS0W3s2rVKpOZW4YkJSXhhRdeEH1sIiJSFk4YqBCTJ0/Gb7/9ZrKQqaqqQvv27SXrw969e9GmTRvR7aSmphoNATVm8+bN8Pb2Fn1sInINYseFuONYGlOUfD1Y6EjEmX5oGhoa4OPjg9DQUEmP06mT6Ymhbty4YVEx4u/vD39/f6uO3aFDB6u2JyLXJTYx2xUStx1J6deDj64k8O2ZbzE8dzimfjMVs3bMwtRvpmJ47nCHJbkmJSUhIyMDmZmZuOWWWzB06FAA+o+uGhoakJGRgbCwMPj5+SEyMhJZWVlG20xMTMQrr7yit+yXX36Bt7c3CgsLAbR+dKVSqbB8+XKMHj0abdq0wdtvvw0AunRwf39/JCcnY/Xq1VCpVPjtt98AtH50NXfuXPTu3Rsff/wxIiMjERwcjMcffxyXLl3SO+eWj67q6+vx8ssvIyIiAr6+vujevTs++ugjAIBGo8FTTz2FqKgo+Pv7Izo6Gu+99571F5qIHE5sYrarJG47ijtcDxY6duYsPzSrV6+Gl5cXdu7ciQ8//LDV+mXLliEvLw8bN27E8ePHsXbtWkRGRhptb/z48Vi/fj1avqS3YcMGhISEYPDgwUb3e+ONNzB69GgcOXIEU6dOxenTpzF27FiMGTMGJSUlePbZZzFnzhyz53Pq1Cl8/vnn+PLLL/Hll1+iuLgYCxYsMLr9pEmT8Mknn2DZsmUoKyvD8uXLERgYCABoampC586dsXHjRpSWluL//b//h1dffRUbN2402w8iko+mSYMFexZAQOuXhZuXLdyzEJomjST7K427XA8+urIjcz80KqiwcM9CJEckS/4Yq1u3bvj73/9udH1FRQW6d++OAQMGQKVSoWvXribbS01NxYwZM/Ddd99h4EBtWOm6devw5JNPwsPDeL385JNPYurUqbrvr7zyCqKjo7Fo0SIAQHR0NH744QfMnz/f5PGbmpqwatUqtG3bFgAwceJE/Pvf/za434kTJ7Bx40YUFBQgJUV72/W2227Trff29sa8efN036OiorBr1y5s3LgR48aNM9kPIpKPNYnZCaEJdt9fadzlevCOjh05U2x9fHy8yfWTJ09GSUkJoqOjMX36dGzdulW3Lj09HYGBgboPoB1/M3ToUPzrX/8CAJSXl2P37t0YP368Vf04fvw4EhL0/4fp16+f2fOJjIzUFTkAEBYWhpqaGoPblpSUwNPT0+SdpuXLlyM+Ph6dOnVCYGAgVq5ciYqKCrP9ICL5iE3MdqXEbUdwl+vBQseOnOmHxtzbT3FxcSgvL8dbb72Fa9euYdy4cRg7diwA4M0330RJSYnu02z8+PHYtGkTbty4gXXr1iE2NhZ33323Vf0QBAEqlarVMnNuHsSsUqnQ1NRkcFtzA5k3btyIGTNmYOrUqdi6dStKSkowZcoUNDQ0mO0HEclHbGK2KyVuO4K7XA8WOnbkaj80QUFBSE1NxcqVK7Fhwwbk5ubi4sWLUKvV6Natm+7TbMyYMbh+/Try8/Oxbt06TJgwwepj3nHHHdi7d6/esn379ok+l5buuusuNDU1obi42OD6HTt2oH///pg2bRr69OmDbt264dSpU3btAxHZn9jEbFdK3HYEd7keLHTsyJV+aJYsWYJPPvkEx44dw4kTJ/Dpp58iNDTU5ER9bdq0wejRo/H666+jrKwMTz75pNXHffbZZ3Hs2DHMmjVLN5Zm1apVANDqTo+tIiMjkZaWhqlTp+Lzzz9HeXk5ioqKdIONu3Xrhn379uGbb77BiRMn8Prrr7cqvojI+YhNzHalxG1HcJfrwULHjlzphyYwMBALFy5EfHw8EhIScPr0aWzZssXkwGJA+/jq0KFDGDhwILp06WL1caOiorBp0yZs3rwZvXr1QnZ2tu6tK19fX5vOxZDs7GyMHTsW06ZNwx133IGnn34aV65cAaAdg/TII48gNTUV99xzDy5cuIBp06bZ7dhEJB2xidmukrjtKO5wPRjq2YK9QhkNTb4UGhCKWf1mKeKHxt7mz5+P5cuXo7KyUu6uiMJQTyLH4czI9uUK18PWUE++Xi6BlK4pSI5IdvofGrl88MEHSEhIQMeOHbFz504sWrQIGRkZcneLiFyIp4enqFeexe6vNEq+Hix0JKLkHxqxTp48ibfffhsXL15Ely5d8OKLL2L27Nlyd4uIiBSIhQ453JIlS7BkyRK5u0FERG6AhQ4REcnC3LgQU+vF7Cu2X65IiedkKRY6BrjZ+GyyE/7cEFnOXGK2qfUAbN7X3AshSkzyVuI5WYNvXbWg0Whw4sQJqNVqdOzYUaYekqu6cOECampq0KNHD3h6usfflIhs0Rx+fHMuYPM0HJNjJ2PV0VUG1xvKErR0XwAmX5k21y9XfN1aSedk61tXLHRuUlVVhd9++w1qtRoBAQF2m8SOlEsQBFy9ehU1NTVo164dwsLC5O4SkdPSNGkwPHe40VxAFVTaiBfBcMSLKeb2VUGFkIAQ5D+a3+qxjSX9Mravs1LaOfH1cjsJDQ0FAKOBkUTGtGvXTvfzQ0SGWRJ+bOvfv83tayqNW4lJ3ko8J1uw0LmJSqVCWFgY1Go1bty4IXd3yEV4e3vzcRWRBZwhCdtQH5wplNlelHhOtmChY4Snpyd/cRER2ZkzhBob6oOrhTJbQonnZAtmXRERkcNYEn7sobLtV5O5fU0FK7tSKLOllHhOtmChQ0REDmNJ+HFaTJp2YLGR9WL2NRas7EqhzJZS4jnZgoUOERE5lLnE7Mz4TKPrlyQtwZKkJTbta+5VaiUmeSvxnKzF18uJiEgWnBnZcZRwTpxHx0IsdIiIiFyPrb+/+eiKiIiIFIuFDhERESkW59EhIlI4Zx0LQ9aR8lor+b+jrIVOVlYWNm/ejGPHjsHf3x/9+/fHwoULER0dbXK/4uJiZGZm4ujRowgPD8fLL7+M9PR0B/WaiMh1OGtKOFlHymut9P+Osg5GHjFiBB5//HEkJCSgsbERc+bMwZEjR1BaWoo2bdoY3Ke8vBw9e/bE008/jWeffRY7d+7EtGnTsH79ejz66KNmj8nByETkLpw1JZysI2UCuSulmyviratffvkFarUaxcXFGDRokMFtZs2ahby8PJSVlemWpaen49ChQ9i9e7fZY7DQISJ3IGVKOAB4qDxsSgkn60iZQO5q6eaKeOuqtrYWANChQwej2+zevRvDhg3TWzZ8+HDs27fPYAhnfX096urq9D5EREpnSXK1rUUOAJP7tkzFJnGsSSB3pradidMUOoIgIDMzEwMGDEDPnj2NblddXY2QkBC9ZSEhIWhsbMT58+dbbZ+VlYXg4GDdJyIiwu59JyJyNs6QSO0MfXB1UiaQu0u6udMUOhkZGTh8+DDWr19vdluVSj+zo/np283LAWD27Nmora3VfSorK+3TYSIiJ+YMidTO0AdXJ2UCubukmztFofP8888jLy8PhYWF6Ny5s8ltQ0NDUV1drbespqYGXl5e6NixY6vtfX19ERQUpPchIlI6KVPCAe0YHXdPxXYEKRPI3SXdXNZCRxAEZGRkYPPmzdi2bRuioqLM7pOYmIiCggK9ZVu3bkV8fDy8vb2l6ioRkUuRMiVcBRXSYtJMtu0Oqdi/7DksAAAgAElEQVSOIGUCubukm8ta6Dz33HNYu3Yt1q1bh7Zt26K6uhrV1dW4du2abpvZs2dj0qRJuu/p6ek4c+YMMjMzUVZWhn/+85/46KOPMHPmTDlOgYjIaTlrSjhZR8oEcndIN5f19XJDY2oAICcnB5MnTwYATJ48GadPn0ZRUZFufXFxMWbMmKGbMHDWrFkWTxjI18uJyN1wZmRlcPeZkRUxj44jsNAhIiJyPYqYR4eIiIjInljoEBERkWIxvZyIyM2ZGp/R0NiADSc2oLKuEhFBEUjtkQofLx+7tK1E7na+roCFDhGRGzOVXH34l8NYXbpaL+7hnX3vIC0mDZnxmaLaVsLbPDdzt/N1FRyMTETkpkwlVxtLL282JXaKyWLHlVKx7cHdzlcOHIxMREQW0zRpsGDPAoMFjbkiBwBWl65GQ2ODzW0v3LMQmiaNlb12Tu52vq6GhQ4RkRsyl1xtTpPQhA0nNtjUtlJSsZu52/m6GhY6RERuyB6J1JV1hkOS3SUVu5m7na+rYaFDROSG7JFIHREUIaptV0/FbuZu5+tqWOgQEbkhc8nV5nioPJDaI9WmtpWSit3M3c7X1bDQISJyQ5YkV5uSFpNmdD4dd0nFbuZu5+tqWOgQEbkpU8nVS5KWYErsFHio9H9NeKg8zL5abq5tJb5q7W7n60o4jw4RkZvjzMj2427n60hML7cQCx0iIiLXwwkDiYiIiG7CQoeIiIgUi6GeREQK0NBwDRv+sxCVdRWICOqC1HtmwcfHX7tOxDgbOcecmOq32H6J2V+qa8LxPdLgGB0iIhe3OH8aVldvR5Pqj1ebPQQBaaGDgFu6tUog91B5WJRALmca9+J9i432u1enXqL6Jea8pLomTD43j4ORLcRCh4iUZHH+NORUb9d+aVHooPmPdpXxOXFMvSYuZxr34n2LkXM0x6p9LO2XmPOS6pow+dwyHIxMRORmGhquYbWhIqfldxN/lzWWQC5nGndDYwNWl662ej9L+iXmvKS6Jkw+lx4LHSIiF7XhPwu1j6uM3bUxtQ7GE8jlTOPecGKD3uMqa5jrl5jzkuqaMPlceix0iIhcVGVdhR3aaJ1ALmcat7FEdGsY65eY85LqmjD5XHosdIiIXFREUBc7tNE6gVzONG5jiejWMNYvMecl1TVh8rn0WOgQEbmo1HtmwUMQjI/DMbUOxhPI5UzjTu2R2ipfy1Lm+iXmvKS6Jkw+lx4LHSIiF+Xj4699hRxoXdBY8NaVsQRyOdO4fbx8kBaTZnY7W/ol5rykuiZMPpceCx0iIheWOeIDTAkd1OoPcw8AU0IH2ZxALmcad2Z8psl+L0laYnO/xJyXVNeEyefS4jw6REQKwJmROTOy0nHCQAux0CEiInI9nDCQiIiI6CYM9SQichCnfTTRpAHO7AIu/wwEhgBd+wPO0C8iO2ChQ0TkAE4b2liaB+TPAurO/bEsKBwYsRCIeUi+fhHZCR9dERFJrDm08eap/muu1iCzKBPfnvlWno6V5gEbJ+kXOQBQV6VdXponT7+I7IiFDhGRhJw2tLFJo72TY6BfumX5r2i3I3JhLHSIiCTktKGNZ3a1vpOjRwDqzmq3I3JhLHSIiCTktKGNl40XXzZtR+SkWOgQEUnIaUMbA0Psux2Rk2KhQ0QkIacNbezaX/t2lZF+ASog6FbtdkQujIUOEZGEnDa00cNT+wr57z3R9/v3EQs4nw65PBY6REQSc9rQxpiHgHFrgKAw/eVB4drlnEeHFIBZV0REDsKZkYlsZ+vvb86MTETkIJ4enkgITZC7G615eAJRA+XuBZEk+OiKiIiIFIuFDhERESkWH10RETmKmLEwco2jUej4HacdL0V2x0KHiMgRxKSEy5UwrtBkc6dNkidJ8NEVEZHUxKSEy5UwrtBkc6dNkifJsNAhIpKSmJRwuRLGFZps7rRJ8iQpFjpERFISkxIuV8K4QpPNnTZJniTFQoeISEpiUsLlShhXaLK50ybJk6RY6BARSUlMSrhcCeMKTTZ32iR5khQLHSIiKYlJCZcrYVyhyeZOmyRPkrK60Pn5558xceJEhIeHw8vLC56ennofIiJqQUxKuFwJ4wpNNnfaJHmSlNWhniNHjkRFRQUyMjIQFhYGlUr/h2X06NF27aC9MdSTiGRhcE6aW7UFg03z6Fi4rxhyHVdihubRCQ0Ixax+sziPjhOz9fe31YVO27ZtsWPHDvTu3dvqTjoDFjpEJBvOjOw0ODOy63FYenlERASsrI2IiAgQlxIuV8K4QpPNnTZJnuzO6jE6S5cuxSuvvILTp09L0B0iIiIi+7Hojk779u31xuJcuXIFt99+OwICAuDt7a237cWLF+3bQyIiIiIbWVToLF26VOp+EBE5BynHpFytBdY/BtT+BAR3Bp74FAgItuzYYvrV2ADsXQn8ehpoHwkkPA14+ehWmxqvwrEs5OqsHoxsT9u3b8eiRYuwf/9+VFVV4bPPPsOYMWOMbl9UVITk5ORWy8vKynDHHXdYdEwORiYio6RM636vN/Breevl7aOAv5aYPjZge7+2vg7sfh8Qmv5YpvIAEjOAYW+ZTPIGwJRvchoOe+vK09MTVVVVUKvVessvXLgAtVoNjcbyMLSvv/4aO3fuRFxcHB599FGLC53jx4/rnWSnTp0snsOHhQ4RGdSc1t0q8PH3x/bj1the7Bgrcpq1UQNXfjFybGN/RFvQr62vA7uWGT3st33GIvO3va1CLlVQGQy+bF4HAIuTFrPYIYdy2FtXxuqi+vp6+Pj4GFxnzMiRIzFy5EhruwC1Wo127dpZvR8RkUFm07pV2rTuOx6w/jHW1VrTRQ4AXKkxssLU30PN9KuxQXsnxwgNgAXnd0Hwav1rwFiR07xOBRUW7lmI5IhkPsYip2dxobNsmfZvBSqVCv/4xz8QGBioW6fRaLB9+3aLHx+J1adPH1y/fh0xMTF47bXXDD7OalZfX4/6+nrd97q6Okd0kYhciTVp3da+ar3+MVFdM81Ev/au1H9cdZMDfr742UCRY9lR/0j55iva5Ows/ilfsmQJAO0dneXLl+s9KvLx8UFkZCSWL19u/x62EBYWhhUrVqBv376or6/Hxx9/jCFDhqCoqAiDBg0yuE9WVhbmzZsnab+IyMVJmdZd+5P1+1jLUL9+PW1yl1/sENnDlG9yBRYXOuXl2luvycnJ2Lx5M9q3by9Zp4yJjo5GdHS07ntiYiIqKyvxzjvvGC10Zs+ejczMTN33uro6RERESN5XInIhUqZ1B3fW3nWRkqF+tY80uUsnK8ZTGm2DKd/kAqyeMLCwsFCWIseYe++9FydPnjS63tfXF0FBQXofIiI9UqZ1P/GpmJ6ZYaJfCU9r364yIu56PUIaG42esemjMuWbXIdFd3Ra3hExZ/HixTZ3xhYHDx5EWFiYQ49JRArTnNa9cRJav+kkMq07IFj7CrlFb13BwLEFA/9uQb+8fLSvkBt568oTwCu39Efmb3t/b/mPtlu+dXXzG1hM+SZXY1Ghc/DgQb3v+/fvh0aj0T1GOnHiBDw9PdG3b1+rDn758mX897//1X0vLy9HSUkJOnTogC5dumD27Nk4e/Ys1qxZA0A7cWFkZCRiY2PR0NCAtWvXIjc3F7m5uVYdl4iolZiHtK9qG5yvRmRa919LRMyjs0D777b0a9hb2n+2mkfHE0h8DinD3sJiI/PozOo3C4DheXSY8k2uxOp5dBYvXoyioiKsXr1a9wjr119/xZQpUzBw4EC8+OKLFrdlbALAtLQ0rFq1CpMnT8bp06dRVFQEAPj73/+OFStW4OzZs/D390dsbCxmz56NUaNGWXxMzqNDRCZxZmTOjExOyWETBt56663YunUrYmNj9Zb/8MMPGDZsGM6dM/WKpvxY6BAREbkeW39/Wz0Yua6uDj//3PpVxpqaGly6dMna5oiIiIgkY3Wh8/DDD2PKlCnYtGkTfvrpJ/z000/YtGkTnnrqKTzyyCNS9JGIiIjIJlZPi7l8+XLMnDkTEyZMwI0bN7SNeHnhqaeewqJFi+zeQSKiVqQcRyOGmbEwZpk6L3NtO+s1kQjHDpGlbE4vv3LlCk6dOgVBENCtWze0adPG3n2TBMfoELk4KRPGxTCTEm6WqfP6aa/ptp31mkjEVOI63wZTLocNRnZ1LHSIXJiUCeNimEkJR//pposdk+dl5o/o6FHA8a+N7Av5rolEvj3zLTKLMg0mrgNMVVcySQudRx55BKtWrUJQUJDZcTibN2+2+OByYKFD5KKaNMDSnibCN1XauxgvHHHsI5vGBmB+iMkATag8gTnVhh9jmT0vMWS6JhLRNGkwPHe43p2cllRQISQgBPmP5vMxlgJJ+tZVcHAwVCqV7t9NfYiIJGFNwrgjmUkJBwAIGu12hpg9LzFkuiYSOVBzwGiRA+inqhM1s2gwck5OjsF/JyJyGCkTxsUwkxJudjtH9NfR10QilqalM1WdWrL49fLXXnsN27Ztw/Xr16XsDxGRYVImjIthJiXc7HaO6K+jr4lELE1LZ6o6tWRxobN+/XqkpKSgXbt2GDx4MObOnYvt27ejoaFByv4REWlJmTAuhpmUcADaMToJTxteZ/a8LOFk10Qiceo4hASE6AYe34yp6mSIxYXOqVOnUFlZiZUrV6Jbt274+OOPkZSUhPbt2yMlJQXz58/Hrl3KeA5MRE6oOWEcQOtf7CITxsVoTgk3JfE54/PpWHJepkQ3Z/050TWRiKeHJ17p9woAtCp2mKpOxoh6vbyyshKFhYUoKipCbm4urly5gsbGRnv2z+741hWRizM4Z8yt4hPGxTI4j442Jdz2eXR+Py+D8+i0aNtZr4lEDM2jExoQylR1hXP4PDqnTp1CUVERtm3bhqKiItTW1iIxMREFBQW2NOcwLHSIFMBZZwHmzMgOw5mR3Y/khU55eTkKCwt1d3Bqa2tx3333YfDgwRg8eDASEhLg5WV1ooTDsdAhIiJyPbb+/ra4Mrn99tvRpUsXTJs2DdOnT0dcXBw8PVk9ExERkfOyeDDyY489hvr6emRlZeGtt97C0qVLceDAAbhZggQRERG5EKvH6Bw7dkz3+Kq4uBjXr1/HgAEDMHjwYCQlJSEhIUGqvtoFH10ROZBc40YargEFrwEXfwQ63AYMfRvw8f9jvanxLubGwphab+58xa4ncmOyhXqWlpZi3bp1+J//+R++dUVEf5ArUXv9E8DxLa2XR48CnlhvOmUcMJ0Sbmrfzgmmz9fc9XCzBHIiazm00Pn5559RVFSEoqIiFBYW4sSJE/D19cW9996LwsJCa5tzKBY6RA4gV8q4sSKnWfso4Ndy29oOjwPOWZuh9Pv59n8e2PU/MHo9zK1XWAI5kS0kL3Q+/fRT3SOr48ePw8vLC/369UNycjKSk5PRv39/+Pr62nwCjsJCh0hicqWMN1wD/hZqv/bsRgWoVGbSzT1MrFdWAjmRrSR/62r8+PGIj4/Hww8/jOTkZNx3333w9/c3vyMRuRdrUsajBtrvuAWv2a8tuxIAc3+fNJl+LtH1InITFhc6v/76K9q0aSNlX4hICeRKGb/4o33bczYKSSAncjSLXy9nkUNEFpErZbzDbfZtz9koJIGcyNEsLnSIiCwiV8r40Lft257dqCxIN/eAuySQEzkaCx0isi+5UsZ9/FskeRvRPsr29sPjLNjIyPkmZvz+74bWq1qknys/gZzI0VjoEJH9xTykfSU6KEx/eVC4tK9KP7HeeLETPQr4awnQf3rrOywqT+1yU+ueKTS9ftzHxs932Fumr4e59Xy1nMhmoicMdDV8vZzIgTgzMmdGJrITSefReeSRRyxucPPmzRZvKwcWOkRERK5H0nl0goODbe4YERERkVwsKnRycnKk7gcRkeWkfAQk175ytk2kYBZPGEhE5BSkDMeUa19zGPhJZDObBiNv2rQJGzduREVFBRoaGvTWHThgbeidY3GMDpELMxcWKiYcU0wQqZQhpnIFpBI5GVt/f1v9evmyZcswZcoUqNVqHDx4EP369UPHjh3x448/YuTIkdY2R0RkmSaN9q5Gq1/4+H2ZAOx+38R6APmvaNuxum2J9jVHyraJ3ITVhc4HH3yAFStW4P3334ePjw9efvllFBQUYPr06aitrZWij0REFoSFwvJwTKvblmhfc6Rsm8hNWF3oVFRUoH9/7VTk/v7+uHTpEgBg4sSJWL9+vX17R0TUzF6hlobaERNEKmWIqVwBqUQKYnWhExoaigsXLgAAunbtiu+//x4AUF5eDjebe5CIHMleoZaG2hETRCpliKlcAalECmJ1oXP//ffjiy++AAA89dRTmDFjBoYOHYrU1FQ8/PDDdu8gEREAC8JCYXs4ppggUilDTOUKSCVSEKsLnRUrVmDOnDkAgPT0dKxatQp33nkn5s2bh+zsbLt3kIgIgAVhoSLCMcUEkUoZYipXQCqRglj9enlFRQUiIiKgUun/TycIAiorK9GlSxe7dtDe+Ho5kYszOKfMrdpf+Ebn0WmxXkzbUu1rjpRtE7kISbOuWvL09ERVVRXUarXe8gsXLkCtVkOjce7XHFnoECkAZ0bmzMjkdiTNumpJEIRWd3MA4PLly/Dz87O2OSIi63l4AlEDbV8vpm2p9pWzbSIFs7jQyczMBACoVCq8/vrrCAgI0K3TaDT4z3/+g969e9u/h0REREQ2srjQOXjwIADtHZ0jR47Ax8dHt87Hxwd33303Zs6caf8eEhEREdnI4kKnsLAQADBlyhS89957HN9C5EjuOD7D1Dm74/UgIptYPUYnJycHAPDf//4Xp06dwqBBg+Dv72907A4RieSOydWmzhlwv+tBRDaz+q2rixcv4rHHHkNhYSFUKhVOnjyJ2267DU899RTatWuHd999V6q+2gXfuiKX4o7J1SbP2dgfVwq+HkQEwIHp5S+88AK8vb1RUVGhNyA5NTUV+fn51jZHRMa4Y3K1JedskEKvBxGJZnWhs3XrVixcuBCdO3fWW969e3ecOXPGbh0jcnvumFxtSUK5UQq8HkQkmtWFzpUrV/Tu5DQ7f/48fH197dIpIoJ7Jlfb41yUdD2ISDSrC51BgwZhzZo1uu8qlQpNTU1YtGgRkpOT7do5IrfmjsnV9jgXJV0PIhLN6reuFi1ahKSkJOzbtw8NDQ14+eWXcfToUVy8eBE7d+6Uoo9E7qk5ubquCobHp6i065WUXG32nE1R4PUgItGsvqMTExODQ4cOISEhAUOHDsWVK1fwyCOP4ODBg7j99tul6CORe3LH5GpLztnUOqVdDyISzerXy10dXy8nl+OOydWmzhlwv+tBRNKnl1+9ehUvvfQSPv/8c9y4cQMpKSlYtmwZbrnlFps7LQcWOuSS3HEmYM6MTEQtSF7ovPTSS/jggw8wfvx4+Pn5Yf369UhKSsKnn35qc6flwEKHiIjI9dj6+9viwcibN2/GRx99hMcffxwAMGHCBNx3333QaDTw9OTfpIiIiMj5WDwYubKyEgMHDtR979evH7y8vHDunK2TexERERFJy+I7OhqNBj4+Pvo7e3mhsbHR7p0iIgdqbAD2rgR+PQ20jwQSnga8fMztJX5fKcfZmGubY3yI3IbFY3Q8PDwwcuRIvdmPv/jiC9x///1o06aNbtnmzZstPvj27duxaNEi7N+/H1VVVfjss88wZswYk/sUFxcjMzMTR48eRXh4OF5++WWkp6dbfEyO0SFqYevrwO73AaHpj2UqDyAxAxj2lnT7SpnIbq5td0yDJ1IAyUM909LSoFarERwcrPtMmDAB4eHhesusceXKFdx99914//33Ldq+vLwco0aNwsCBA3Hw4EG8+uqrmD59OnJzc606LhFBW6jsWqZfqADa77uWaddLsW9zOvnNmVZ1VdrlpXnWnYc1bW99XbpjE5FTcpp5dFQqldk7OrNmzUJeXh7Kysp0y9LT03Ho0CHs3r3bouPwjg4RtI+c5oe0LlRaUnkCc6pbP4oSs2+TBlja00Rw5++zG79wxPpHSWbbhvaOk9F+izg2EUlO8js6zmD37t0YNmyY3rLhw4dj3759uHHjhsF96uvrUVdXp/chcnt7V5ouVABA0Gi3s+e+UiayW5J8brLfTD8nUiKXKnSqq6sREqIf2BcSEoLGxkacP3/e4D5ZWVl6j9YiIiIc0VUi5/bradu3E7OvlIns9kotZ/o5kaK4VKEDaB9xtdT85O3m5c1mz56N2tpa3aeyslLyPhI5vfaRtm8nZl8pE9ntlVrO9HMiRXGpQic0NBTV1dV6y2pqauDl5YWOHTsa3MfX1xdBQUF6HyK3l/C0dryKKSpP7Xb23Lc5nbxVKKduR21ulS0J5Gbbxu/9luDYROS0XKrQSUxMREFBgd6yrVu3Ij4+Ht7e3jL1isgFefloXwM3JfE5w3PiiNlXykR2s22rWvSb6edE7kLWQufy5csoKSlBSUkJAO3r4yUlJaioqACgfew0adIk3fbp6ek4c+YMMjMzUVZWhn/+85/46KOPMHPmTFn6T+TShr0F9J/e+u6MylO73NRcOGL2jXkIGLcGCArTXx4Url0uZi4bc20Pe0u6YxORU5L19fKioiIkJye3Wp6WloZVq1Zh8uTJOH36NIqKinTriouLMWPGDN2EgbNmzeKEgURicGZkzoxM5AIkTy9XChY6RERErsct5tEhIiIisgYLHSIiIlIsFjpERESkWCx0iIiISLFY6BAREZFisdAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWCx0iIiISLFY6BAREZFisdAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWCx0iIiISLFY6BAREZFisdAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWCx0iIiISLFY6BAREZFisdAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWCx0iIiISLFY6BAREZFisdAhIiIixWKhQ0RERIrFQoeIiIgUi4UOERERKRYLHSIiIlIsFjpERESkWF5yd4DkpWkSsKf8ImouXYe6rR/6RXWAp4dK7m4RERHZBQsdN5b/QxXmfVGKqtrrumVhwX5448EYjOgZJmPPiIiI7IOPrtxU/g9V+MvaA3pFDgBU117HX9YeQP4PVTL1jIiIyH5Y6LghTZOAeV+UQjCwrnnZvC9KoWkytAUREZHrYKHjhvaUX2x1J6clAUBV7XXsKb/ouE4RERFJgIWOG6q5ZLzIsWU7IiIiZ8VCxw2p2/rZdTsiIiJnxULHDfWL6oCwYD8Ye4lcBe3bV/2iOjiyW0RERHbHQscNeXqo8MaDMQDQqthp/v7GgzGcT4eIiFweCx03NaJnGLInxCE0WP/xVGiwH7InxHEeHSIiUgROGOjGRvQMw9CYUM6MTEREisVCx815eqiQeHtHubtBREQkCT66IiIiIsVioUNERESKxUdXZBLTzYmIyJXJfkfngw8+QFRUFPz8/NC3b1/s2LHD6LZFRUVQqVStPseOHXNgj91H/g9VGLBwG55Y+T3++kkJnlj5PQYs3MbATyIichmyFjobNmzACy+8gDlz5uDgwYMYOHAgRo4ciYqKCpP7HT9+HFVVVbpP9+7dHdRj98F0cyIiUgJZC53Fixfjqaeewp///GfceeedWLp0KSIiIpCdnW1yP7VajdDQUN3H09PTQT12D0w3JyIipZCt0GloaMD+/fsxbNgwveXDhg3Drl27TO7bp08fhIWFYciQISgsLDS5bX19Perq6vQ+ZBrTzYmISClkK3TOnz8PjUaDkJAQveUhISGorq42uE9YWBhWrFiB3NxcbN68GdHR0RgyZAi2b99u9DhZWVkIDg7WfSIiIux6HkrEdHMiIlIK2d+6Uqn03+ARBKHVsmbR0dGIjo7WfU9MTERlZSXeeecdDBo0yOA+s2fPRmZmpu57XV0dix0zmG5ORERKIdsdnVtuuQWenp6t7t7U1NS0ustjyr333ouTJ08aXe/r64ugoCC9D5nGdHMiIlIK2QodHx8f9O3bFwUFBXrLCwoK0L9/f4vbOXjwIMLCGEBpT0w3JyIipZD10VVmZiYmTpyI+Ph4JCYmYsWKFaioqEB6ejoA7WOns2fPYs2aNQCApUuXIjIyErGxsWhoaMDatWuRm5uL3NxcOU9DkZrTzed9Uao3MDk02A9vPBjDdHMiInIJshY6qampuHDhAt58801UVVWhZ8+e2LJlC7p27QoAqKqq0ptTp6GhATNnzsTZs2fh7++P2NhYfPXVVxg1apRcp6BoTDcnIiJXpxIEwa0mQ6mrq0NwcDBqa2s5XoeIiMhF2Pr7W/YICCIiIiKpsNAhIiIixZJ9Hh0yT0yC+LUGDf62pRSnL1xFZMcAvDoqBv4+f0RmmGtbzLGZfE5ERHJjoePk8n+oavXmU5iFbz49vWYvCkprdN93nAQ+/r4CQ2PUWDkpwWzbYo4tZl8iIiJ74WBkJ9acIH7zf6DmeyLZE+KMFg03Fzk369U5CEd+qjPa9jODorBie7lNxxbTbyIiIkM4GFlhxCSIX2vQmCxyAOCwgSKnZdsrd7Quciw5NpPPiYjImbDQcVJiEsT/tqVU1LEFAKbqEFPHZvI5ERE5ExY6TkpMgvjpC1ft3R2Lj83kcyIiciYsdJyUmATxyI4B9u6Oxcdm8jkRETkTFjpOSkyC+KujYkQdWwXA1Fvgpo7N5HMiInImLHSclJgEcX8fTwyNUZtsv1fnIKhMtP30wCiT640dm8nnRETkTFjoOLHmBPHQYP3HPKHBfmZf0V45KcFosTM0Ro28jIEm2549KsbmY4vpNxERkT1xHh0XwJmRiYjI3dn6+5uFDhERETk9ThhIREREdBMWOkRERKRYDIm72VYAABMTSURBVPV0AQ2NTfh492mcuXgVXTsEYGJiJHy8/qhRTY3DETtOhuNsiIjIlXGMjpPL2lKKlTvK9SIZPFTa179nj4oxGt45NEaNR+M6i0oQZwI5ERE5Cw5GtpArFTpZW0rx4fZyo+u7dvTHmQvXrGrT0gRxJpATEZEz4WBkhWlobMLKHcaLHABWFzmAZQniTCAnIiKlYKHjpD7efdpkgrgY5hLEmUBORERKwULHSZ25KH0CubEEcSaQExGRUrDQcVJdO0ifQG4sQZwJ5EREpBQsdJzUxMRIkwniYphLEGcCORERKQULHSfl4+WBpwdGmdyma0d/s+3YkiDOBHIiIlIKFjpObPaoGDw7KKrVnR0PFfDsoCgUv3S/yYTy5SISxJlATkRESsB5dFwAZ0YmIiJ3xwkDLeSKhQ4REZG744SBRERERDdhoUNERESKxfRyOxIznsXUOJzL1xsxY8NBVPx6DV3a+2NJah8E+v3xn676t+v40/9sR931RgT5eeHL5wchtJ12EPHFyw14fMUu1FxqgLqtDz55pj86BPro9q29egNTV+3BudrrCA/2wz8n90NwgLddzonje4iISG4co2MnYpK+TSWU7/7xAg7/VNdqn16dg5CXMRB3vv41rt1oarXe39sDgb5e+OVyQ6t1nQJ9sPe1oRi8aJvBvKyuHf1R/NL9os6JyedERGRPHIxsISkKHTFJ3+YSyk1RAQaDNy3hoYLJLK1OgT44f7nBpnNi8jkREdkbByPLREzStyUJ5aaIqVDNBYb+YqDIaXlMY+fE5HMiInImLHREEpP0LWVCuZRMnROTz4mIyJmw0BFJTNK3IxLKpWTonJh8TkREzoSFjkhikr4dkVAuJUPnxORzIiJyJix0RBKT9C1lQrmUTJ0Tk8+JiMiZsNARSUzStyUJ5aaIqZHMFVidAn2gMnAMc+fE5HMiInImLHTsQEzSt7mE8l6dDb9C16tzEMoXPAB/b8P/Cf29PdCpxcSALXUK9MGPWQ+ga0d/g+u7dvTH3teG2nxOTD4nIiJnwXl07IgzI9vvehAREbXECQMtxPRyIiIi18MJA4mIiIhuwlBPB5HyMY6pts099iIiIlIy/sZzACkDLk21/UHRf/UCQY9XX0LPud/oAkGJiIiUjmN0JCZlwKWpts39R2WxQ0REroRjdJyQlAGXlrRtyuGf6nD5eqPVxyUiInIlLHQkJGXApbm2LTFjw0FR+xMRETk7FjoSkjLg0h6hmBW/XhPdBhERkTNjoSMhKQMu7RGK2aW94ZmRiYiIlIKFjoSkDLg017YllqT2EbE3ERGR82OhIyEpAy4taduUXp2DOJ8OEREpHgsdiUkZcGmq7eUT4kwGgvLVciIicgecR8dBODMyERGR7RjqaSGGehIREbkeThhIREREdBMWOkRERKRYLHSIiIhIsWQvdD744ANERUXBz88Pffv2xY4dO0xuX1xcjL59+8LPzw+33XYbli9f7qCeEhERkauRtdDZsGEDXnjhBcyZMwcHDx7EwIEDMXLkSFRUVBjcvry8HKNGjcLAgQNx8OBBvPrqq5g+fTpyc3Md3HMiIiJyBbK+dXXPPfcgLi4O2dnZumV33nknxowZg6ysrFbbz5o1C3l5eSgrK9MtS09Px6FDh7B7926Ljsm3roiIiFyPy7111dDQgP3792PYsGF6y4cNG4Zdu3YZ3Gf37t2tth8+fDj27duHGzduGNynvr4edXV1eh8iIiJyD7IVOufPn4dGo0FISIje8pCQEFRXVxvcp7q62uD2jY2NOH/+vMF9srKyEBwcrPtERETY5wSIiIjI6ck+GFml0p8dWBCEVsvMbW9oebPZs2ejtrZW96msrBTZYyIiInIVsmUB3HLLLfD09Gx196ampqbVXZtmoaGhBrf38vJCx44dDe7j6+sLX19f+3SaiIiIXIpsd3R8fHzQt29fFBQU6C0vKChA//79De6TmJjYavutW7ciPj4e3t7ekvWViIiIXJOs6Y6ZmZmYOHEi4uPjkZiYiBUrVqCiogLp6ekAtI+dzp49izVr1gDQvmH1/vvvIzMzE08//TR2796Njz76COvXr7f4mM2PujgomYiIyHU0/962+mVxQWb/+7//K3Tt2lXw8fER4uLihOLiYt26tLQ0YfDgwXrbFxUVCX369BF8fHyEyMhIITs726rjVVZWCgD44Ycffvjhhx8X/FRWVlr1e9/t0submppw7tw5tG3b1uSgZ1vV1dUhIiIClZWVnKfHDF4r6/B6WYfXyzq8Xtbh9bKOPa6XIAi4dOkSwsPD4eFh+cgbWR9dycHDwwOdO3eW/DhBQUH84bcQr5V1eL2sw+tlHV4v6/B6WUfs9QoODrZ6H9lfLyciIiKSCgsdIiIiUizPuXPnzpW7E0rj6emJpKQkeHm53ZNBq/FaWYfXyzq8Xtbh9bIOr5d15LpebjcYmYiIiNwHH10RERGRYrHQISIiIsVioUNERESKxUKHiIiIFIuFjp1s374dDz74IMLDw6FSqfD555/L3SWnlZWVhYSEBLRt2xZqtRpjxozB8ePH5e6W08rOzkavXr10E20lJibi66+/lrtbLiErKwsqlQovvPCC3F1xWnPnzoVKpdL7hIaGyt0tp3X27FlMmDABHTt2REBAAHr37o39+/fL3S2nFBkZ2epnS6VS4bnnnnNoP1jo2MmVK1dw99134/3335e7K06vuLgYzz33HL7//nsUFBSgsbERw4YNw5UrV+TumlPq3LkzFixYgH379mHfvn24//77MXr0aBw9elTurjm1vXv3YsWKFejVq5fcXXF6sbGxqKqq0n2OHDkid5ec0q+//or77rsP3t7e+Prrr1FaWop3330X7dq1k7trTmnv3r16P1cFBQUAgMcee8yh/eDL/3YycuRIjBw5Uu5uuIT8/Hy97zk5OVCr1di/fz8GDRokU6+c14MPPqj3ff78+cjOzsb333+P2NhYmXrl3C5fvozx48dj5cqVePvtt+XujtPz8vLiXRwLLFy4EBEREcjJydEti4yMlK9DTq5Tp0563xcsWIDbb78dgwcPdmg/eEeHZFdbWwsA6NChg8w9cX4ajQaffPIJrly5gsTERLm747See+45PPDAA0hJSZG7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",
658
+ "text/plain": [
659
+ "<Figure size 640x480 with 1 Axes>"
660
+ ]
661
+ },
662
+ "execution_count": 3,
663
+ "metadata": {},
664
+ "output_type": "execute_result"
665
+ }
666
+ ],
667
+ "source": [
668
+ "plot = charty.scatter do\n",
669
+ " iris.group_by(:label).groups.each do |label, index|\n",
670
+ " records = iris.row[*index]\n",
671
+ " series records[:petal_length].to_a, records[:petal_width].to_a, label: label[0]\n",
672
+ " end\n",
673
+ " xlabel \"Petal Length\"\n",
674
+ " ylabel \"Petal Width\"\n",
675
+ "end\n",
676
+ "plot.render"
677
+ ]
678
+ },
679
+ {
680
+ "cell_type": "markdown",
681
+ "metadata": {},
682
+ "source": [
683
+ "You can find the other examples in [here](./)."
684
+ ]
685
+ }
686
+ ],
687
+ "metadata": {
688
+ "kernelspec": {
689
+ "display_name": "Ruby 2.6.2",
690
+ "language": "ruby",
691
+ "name": "ruby"
692
+ },
693
+ "language_info": {
694
+ "file_extension": ".rb",
695
+ "mimetype": "application/x-ruby",
696
+ "name": "ruby",
697
+ "version": "2.6.2"
698
+ }
699
+ },
700
+ "nbformat": 4,
701
+ "nbformat_minor": 2
702
+ }