forked from relopezbriega/relopezbriega.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
analisis-de-datos.atom.xml
11194 lines (10070 loc) · 872 KB
/
analisis-de-datos.atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Raul E. Lopez Briega</title><link href="http://relopezbriega.github.io/" rel="alternate"></link><link href="/feeds/analisis-de-datos.atom.xml" rel="self"></link><id>http://relopezbriega.github.io/</id><updated>2016-09-18T00:00:00-03:00</updated><entry><title>Visualizaciones de datos con Python</title><link href="http://relopezbriega.github.io/blog/2016/09/18/visualizaciones-de-datos-con-python/" rel="alternate"></link><published>2016-09-18T00:00:00-03:00</published><author><name>Raul E. Lopez Briega</name></author><id>tag:relopezbriega.github.io,2016-09-18:blog/2016/09/18/visualizaciones-de-datos-con-python/</id><summary type="html"><p>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p><img alt="Visualizaciones de datos con Python" title="Visualizaciones de datos con Python" src="http://relopezbriega.github.io/images/DataViz.png" high=400px width=600px></p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Introducci&#243;n">Introducci&#243;n<a class="anchor-link" href="#Introducci&#243;n">&#182;</a></h2><p>Las visualizaciones son una herramienta fundamental para entender y compartir ideas sobre los datos. La visualización correcta puede ayudar a expresar una idea central, o abrir un espacio para una más profunda investigación; con ella se puede conseguir que todo el mundo hable sobre un <a href="https://es.wikipedia.org/wiki/Conjunto_de_datos">conjunto de datos</a>, o compartir una visión sobre lo que los datos nos quieren decir.</p>
<p>Una buena visualización puede dar a quien la observa un sentido rico y amplio de un <a href="https://es.wikipedia.org/wiki/Conjunto_de_datos">conjunto de datos</a>. Puede comunicar los datos de manera precisa a la vez que expone los lugares en dónde se necesita más información o dónde una hipótesis no se sostiene. Por otra parte, la visualización nos proporciona un lienzo para aplicar nuestras propias ideas, experiencias y conocimientos cuando observamos y analizamos datos, permitiendo realizar múltiples interpretaciones. Si como dice el dicho <em>"una imagen vale más que mil palabras"</em>, un gráfico interactivo bien elegido entonces podría valer cientos de <a href="https://es.wikipedia.org/wiki/Contraste_de_hip%C3%B3tesis">pruebas estadísticas</a>.</p>
<h2 id="Librer&#237;as-para-visualizar-datos-en-Python">Librer&#237;as para visualizar datos en Python<a class="anchor-link" href="#Librer&#237;as-para-visualizar-datos-en-Python">&#182;</a></h2><p>Como bien sabemos, la comunidad de <a href="http://python.org/">Python</a> es muy grande, por lo tanto vamos a poder encontrar un gran número de librerías para visualizar datos. Al tener tanta variedad de opciones, a veces se hace realmente difícil determinar cuando utilizar cada una de ellas. En este artículo yo voy a presentar solo cuatro que creo que cubren un gran abanico de casos:</p>
<ul>
<li><strong><a href="http://matplotlib.org/gallery.html">Matplotlib</a></strong>: Que es la más antigua y se convirtió en la librería por defecto para visualizaciones de datos; muchas otras están basadas en ella. Es extremadamente potente, pero con ese poder viene aparejada la complejidad. Se puede hacer prácticamente de todo con <a href="http://matplotlib.org/gallery.html">Matplotlib</a> pero no siempre es tan fácil de averiguar como hacerlo. Los que siguen el <a href="http://relopezbriega.github.io/">blog</a> me habrán visto utilizarla en varios artículos.</li>
</ul>
<ul>
<li><strong><a href="http://bokeh.pydata.org/en/latest/">Bokeh</a></strong>: Una de las más jóvenes librerías de visualizaciones, pero no por ello menos potente. <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a> es una librería para visualizaciones interactivas diseñada para funcionar en los navegadores web modernos. Su objetivo es proporcionar una construcción elegante y concisa de gráficos modernos al estilo de <a href="https://d3js.org/">D3.js</a>, y para ampliar esta capacidad con la interactividad y buen rendimiento sobre grandes volúmenes de datos. <a href="http://bokeh.pydata.org/en/latest/">Bokeh</a> puede ayudar a cualquier persona a crear en forma rápida y sencilla gráficos interactivos, <em>dashboards</em> y aplicaciones de datos. Puede crear tanto gráficos estáticos como gráficos interactivos en el servidor de <a href="http://bokeh.pydata.org/en/latest/docs/user_guide/server.html">Bokeh</a>.</li>
</ul>
<ul>
<li><strong><a href="https://stanford.edu/~mwaskom/software/seaborn/">Seaborn</a></strong>: Si de gráficos estadísticos se trata, <a href="https://stanford.edu/~mwaskom/software/seaborn/">Seaborn</a> es la librería que deberíamos utilizar, con ella podemos crear gráficos estadísticos informativos y atractivos de forma muy sencilla. Es una de las tantas librerías que se basan en <a href="http://matplotlib.org/gallery.html">Matplotlib</a> pero nos ofrece varias características interesantes tales como temas, paletas de colores, funciones y herramientas para visualizar <a href="http://relopezbriega.github.io/blog/2016/06/29/distribuciones-de-probabilidad-con-python/">distribuciones</a> de una o varias <a href="https://es.wikipedia.org/wiki/Variable_aleatoria">variables aleatorias</a>, <a href="https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal">regresiones lineales</a>, <a href="https://es.wikipedia.org/wiki/Serie_temporal">series de tiempo</a>, entre muchas otras. Con ella podemos construir visualizaciones complejas en forma sencilla.</li>
</ul>
<ul>
<li><strong><a href="https://folium.readthedocs.io/en/latest/">Folium</a></strong>: Si lo que necesitamos es visualizar datos de <a href="https://es.wikipedia.org/wiki/Geolocalizaci%C3%B3n">geolocalización</a> en mapas interactivos, entonces <a href="https://folium.readthedocs.io/en/latest/">Folium</a> es una muy buena opción. Esta librería de <a href="http://python.org/">Python</a> es una herramienta sumamente poderosa para realizar mapas al estilo <a href="http://leafletjs.com/">leaflet.js</a>. El hecho de que los resultados de <a href="https://folium.readthedocs.io/en/latest/">Folium</a> son interactivos hace que esta librería sea útil para la construcción de <em>dashboards</em>.</li>
</ul>
<h2 id="&#191;C&#243;mo-elegir-la-visualizaci&#243;n-adecuada?">&#191;C&#243;mo elegir la visualizaci&#243;n adecuada?<a class="anchor-link" href="#&#191;C&#243;mo-elegir-la-visualizaci&#243;n-adecuada?">&#182;</a></h2><p>Una de las primeras preguntas que nos debemos realizar al explorar datos es ¿qué método de visualización es más efectivo?. Para intentar responder esta pregunta podemos utilizar la siguiente guía:</p>
<p><img alt="Visualizaciones de datos con Python" title="Visualizaciones de datos con Python" src="http://relopezbriega.github.io/images/chartchooserincolor.jpg" high=400px width=600px></p>
<p>Como podemos ver, la guía se divide en cuatro categorías principales y luego se clasifican los distintos métodos de visualización que mejor representan cada una de esas categorías. Veamos un poco más en detalle cada una de ellas:</p>
<ul>
<li><p><strong><a href="http://relopezbriega.github.io/blog/2016/06/29/distribuciones-de-probabilidad-con-python/">Distribuciones</a></strong>: En esta categoría intentamos comprender como los datos se distribuyen. Se suelen utilizar en el comienzo de la etapa de exploración de datos, cuando queremos comprender las variables. Aquí también nos vamos a encontrar con variables de dos tipos <a href="http://relopezbriega.github.io/blog/2016/03/13/analisis-de-datos-cuantitativos-con-python/">cuantitativas</a> y <a href="http://relopezbriega.github.io/blog/2016/02/29/analisis-de-datos-categoricos-con-python/">categóricas</a>. Dependiendo del tipo y cantidad de variables, el método de visualización que vamos a utilizar.</p>
</li>
<li><p><strong>Comparaciones</strong>: En esta categoría el objetivo es comparar valores a través de diferentes categorías y con el tiempo (tendencia). Los tipos de gráficos más comunes en esta categoría son los <a href="https://es.wikipedia.org/wiki/Diagrama_de_barras">diagramas de barras</a> para cuando estamos comparando elementos o categorías y los <a href="https://en.wikipedia.org/wiki/Line_chart">diagramas de puntos y líneas</a> cuando comparamos variables <a href="http://relopezbriega.github.io/blog/2016/03/13/analisis-de-datos-cuantitativos-con-python/">cuantitativas</a>.</p>
</li>
<li><p><strong>Relaciones</strong>: Aquí el objetivo es comprender la relación entre dos o más variables. La visualización más utilizada en esta categoría es el <a href="https://es.wikipedia.org/wiki/Diagrama_de_dispersi%C3%B3n">gráfico de dispersión</a>.</p>
</li>
<li><p><strong>Composiciones</strong>: En esta categoría el objetivo es comprender como esta compuesta o distribuida una variable; ya sea a través del tiempo o en forma estática. Las visualizaciones más comunes aquí son los <a href="https://es.wikipedia.org/wiki/Diagrama_de_barras">diagramas de barras</a> y los <a href="https://es.wikipedia.org/wiki/Gr%C3%A1fico_circular">gráficos de tortas</a>.</p>
</li>
</ul>
<h2 id="Ejemplos-en-Python">Ejemplos en Python<a class="anchor-link" href="#Ejemplos-en-Python">&#182;</a></h2><p>Luego de esta introducción es hora de ensuciarse las manos y ponerse a jugar con algunos ejemplos en el uso de cada una de estas 4 librerías que nos ofrece <a href="http://python.org/">Python</a> para visualización de datos. Obviamente los ejemplos van a ser sencillos ya que un tutorial exhaustivo sobre cada herramienta requeriría mucho más espacio.</p>
<h3 id="Matplotlib">Matplotlib<a class="anchor-link" href="#Matplotlib">&#182;</a></h3><p>Comencemos con <a href="http://matplotlib.org/gallery.html">Matplotlib</a>; como les comentaba, es tal vez la librería más utilizada para gráficos en 2d. El objeto <code>pyplot</code> nos proporciona la interfase principal sobre la que podemos crear las visualizaciones de datos con esta librería.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[1]:</div>
<div class="collapseheader inner_cell"><span style="font-weight: bold;">Ver Código</span>
<div class="input_area" style="display:none">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># importando modulos necesarios</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="kn">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">pandas</span> <span class="kn">as</span> <span class="nn">pd</span>
<span class="kn">from</span> <span class="nn">pydataset</span> <span class="kn">import</span> <span class="n">data</span>
<span class="kn">import</span> <span class="nn">re</span>
<span class="c1"># librerías de visualizaciones</span>
<span class="kn">import</span> <span class="nn">seaborn</span> <span class="kn">as</span> <span class="nn">sns</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="kn">as</span> <span class="nn">plt</span>
<span class="kn">from</span> <span class="nn">bokeh.io</span> <span class="kn">import</span> <span class="n">output_notebook</span><span class="p">,</span> <span class="n">show</span>
<span class="kn">from</span> <span class="nn">bokeh.charts</span> <span class="kn">import</span> <span class="n">Histogram</span><span class="p">,</span> <span class="n">Scatter</span>
<span class="kn">import</span> <span class="nn">folium</span>
<span class="c1"># graficos incrustados</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="n">output_notebook</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_html rendered_html output_subarea ">
<div class="bk-root">
<a href="http://bokeh.pydata.org" target="_blank" class="bk-logo bk-logo-small bk-logo-notebook"></a>
<span id="0f67c312-b93b-41ef-9215-63bfa5199b1f">Loading BokehJS ...</span>
</div>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div id="efaa52da-3222-4fe1-bfa0-947e0c5f9bad"></div>
<div class="output_subarea output_javascript ">
<script type="text/javascript">
var element = $('#efaa52da-3222-4fe1-bfa0-947e0c5f9bad');
(function(global) {
function now() {
return new Date();
}
var force = "1";
if (typeof (window._bokeh_onload_callbacks) === "undefined" || force !== "") {
window._bokeh_onload_callbacks = [];
window._bokeh_is_loading = undefined;
}
if (typeof (window._bokeh_timeout) === "undefined" || force !== "") {
window._bokeh_timeout = Date.now() + 5000;
window._bokeh_failed_load = false;
}
var NB_LOAD_WARNING = {'data': {'text/html':
"<div style='background-color: #fdd'>\n"+
"<p>\n"+
"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \n"+
"may be due to a slow or bad network connection. Possible fixes:\n"+
"</p>\n"+
"<ul>\n"+
"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\n"+
"<li>use INLINE resources instead, as so:</li>\n"+
"</ul>\n"+
"<code>\n"+
"from bokeh.resources import INLINE\n"+
"output_notebook(resources=INLINE)\n"+
"</code>\n"+
"</div>"}};
function display_loaded() {
if (window.Bokeh !== undefined) {
Bokeh.$("#0f67c312-b93b-41ef-9215-63bfa5199b1f").text("BokehJS successfully loaded.");
} else if (Date.now() < window._bokeh_timeout) {
setTimeout(display_loaded, 100)
}
}
function run_callbacks() {
window._bokeh_onload_callbacks.forEach(function(callback) { callback() });
delete window._bokeh_onload_callbacks
console.info("Bokeh: all callbacks have finished");
}
function load_libs(js_urls, callback) {
window._bokeh_onload_callbacks.push(callback);
if (window._bokeh_is_loading > 0) {
console.log("Bokeh: BokehJS is being loaded, scheduling callback at", now());
return null;
}
if (js_urls == null || js_urls.length === 0) {
run_callbacks();
return null;
}
console.log("Bokeh: BokehJS not loaded, scheduling load and callback at", now());
window._bokeh_is_loading = js_urls.length;
for (var i = 0; i < js_urls.length; i++) {
var url = js_urls[i];
var s = document.createElement('script');
s.src = url;
s.async = false;
s.onreadystatechange = s.onload = function() {
window._bokeh_is_loading--;
if (window._bokeh_is_loading === 0) {
console.log("Bokeh: all BokehJS libraries loaded");
run_callbacks()
}
};
s.onerror = function() {
console.warn("failed to load library " + url);
};
console.log("Bokeh: injecting script tag for BokehJS library: ", url);
document.getElementsByTagName("head")[0].appendChild(s);
}
};var element = document.getElementById("0f67c312-b93b-41ef-9215-63bfa5199b1f");
if (element == null) {
console.log("Bokeh: ERROR: autoload.js configured with elementid '0f67c312-b93b-41ef-9215-63bfa5199b1f' but no matching script tag was found. ")
return false;
}
var js_urls = ['https://cdn.pydata.org/bokeh/release/bokeh-0.12.2.min.js', 'https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.2.min.js', 'https://cdn.pydata.org/bokeh/release/bokeh-compiler-0.12.2.min.js'];
var inline_js = [
function(Bokeh) {
Bokeh.set_log_level("info");
},
function(Bokeh) {
Bokeh.$("#0f67c312-b93b-41ef-9215-63bfa5199b1f").text("BokehJS is loading...");
},
function(Bokeh) {
console.log("Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-0.12.2.min.css");
Bokeh.embed.inject_css("https://cdn.pydata.org/bokeh/release/bokeh-0.12.2.min.css");
console.log("Bokeh: injecting CSS: https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.2.min.css");
Bokeh.embed.inject_css("https://cdn.pydata.org/bokeh/release/bokeh-widgets-0.12.2.min.css");
}
];
function run_inline_js() {
if ((window.Bokeh !== undefined) || (force === "1")) {
for (var i = 0; i < inline_js.length; i++) {
inline_js[i](window.Bokeh);
}if (force === "1") {
display_loaded();
}} else if (Date.now() < window._bokeh_timeout) {
setTimeout(run_inline_js, 100);
} else if (!window._bokeh_failed_load) {
console.log("Bokeh: BokehJS failed to load within specified timeout.");
window._bokeh_failed_load = true;
} else if (!force) {
var cell = $("#0f67c312-b93b-41ef-9215-63bfa5199b1f").parents('.cell').data().cell;
cell.output_area.append_execute_result(NB_LOAD_WARNING)
}
}
if (window._bokeh_is_loading === 0) {
console.log("Bokeh: BokehJS loaded, going straight to plotting");
run_inline_js();
} else {
load_libs(js_urls, function() {
console.log("Bokeh: BokehJS plotting callback run at", now());
run_inline_js();
});
}
}(this));
</script>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[2]:</div>
<div class="inner_cell">
<div class="input_area">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># Cargamos algunos datasets de ejemplo</span>
<span class="n">iris</span> <span class="o">=</span> <span class="n">data</span><span class="p">(</span><span class="s1">&#39;iris&#39;</span><span class="p">)</span>
<span class="n">tips</span> <span class="o">=</span> <span class="n">data</span><span class="p">(</span><span class="s1">&#39;tips&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
<div class="input_area">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># Ejemplo matplotlib</span>
<span class="c1"># graficanco funciones seno y coseno</span>
<span class="n">X</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="mi">256</span><span class="p">,</span> <span class="n">endpoint</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">C</span><span class="p">,</span> <span class="n">S</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">cos</span><span class="p">(</span><span class="n">X</span><span class="p">),</span> <span class="n">np</span><span class="o">.</span><span class="n">sin</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>
<span class="c1"># configurando el tamaño de la figura</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">8</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
<span class="c1"># dibujando las curvas</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">C</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;blue&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;coseno&quot;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">S</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">,</span> <span class="n">linewidth</span><span class="o">=</span><span class="mf">2.5</span><span class="p">,</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;seno&quot;</span><span class="p">)</span>
<span class="c1"># personalizando los valores de los ejes</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xticks</span><span class="p">([</span><span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">,</span> <span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">pi</span><span class="p">],</span>
<span class="p">[</span><span class="sa">r</span><span class="s1">&#39;$-\pi$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$-\pi/2$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$0$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$+\pi/2$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$+\pi$&#39;</span><span class="p">])</span>
<span class="n">plt</span><span class="o">.</span><span class="n">yticks</span><span class="p">([</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">+</span><span class="mi">1</span><span class="p">],</span>
<span class="p">[</span><span class="sa">r</span><span class="s1">&#39;$-1$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$0$&#39;</span><span class="p">,</span> <span class="sa">r</span><span class="s1">&#39;$+1$&#39;</span><span class="p">])</span>
<span class="c1"># agregando la leyenda</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;upper left&#39;</span><span class="p">)</span>
<span class="c1"># moviendo los ejes de coordenadas</span>
<span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">gca</span><span class="p">()</span> <span class="c1"># get current axis</span>
<span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;right&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;top&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_color</span><span class="p">(</span><span class="s1">&#39;none&#39;</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">xaxis</span><span class="o">.</span><span class="n">set_ticks_position</span><span class="p">(</span><span class="s1">&#39;bottom&#39;</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;bottom&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_position</span><span class="p">((</span><span class="s1">&#39;data&#39;</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span>
<span class="n">ax</span><span class="o">.</span><span class="n">yaxis</span><span class="o">.</span><span class="n">set_ticks_position</span><span class="p">(</span><span class="s1">&#39;left&#39;</span><span class="p">)</span>
<span class="n">ax</span><span class="o">.</span><span class="n">spines</span><span class="p">[</span><span class="s1">&#39;left&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">set_position</span><span class="p">((</span><span class="s1">&#39;data&#39;</span><span class="p">,</span><span class="mi">0</span><span class="p">))</span>
<span class="c1"># mostrando el resultado</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
JEwhhBCiEv4f6C/UMhADUaIAAAAASUVORK5CYII=
"
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>En este primer ejemplo vemos como podemos acceder a la API de <a href="http://matplotlib.org/gallery.html">Matplotlib</a> desde el objeto <code>pyplot</code> e ir dando forma al gráfico. Veamos ahora unos ejemplos con el dataset iris.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># Ejemplo con iris</span>
<span class="c1"># histograma de Petal.Length</span>
<span class="n">iris</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt output_prompt">Out[4]:</div>
<div class="output_html rendered_html output_subarea output_execute_result">
<div>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Sepal.Length</th>
<th>Sepal.Width</th>
<th>Petal.Length</th>
<th>Petal.Width</th>
<th>Species</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td>5.1</td>
<td>3.5</td>
<td>1.4</td>
<td>0.2</td>
<td>setosa</td>
</tr>
<tr>
<th>2</th>
<td>4.9</td>
<td>3.0</td>
<td>1.4</td>
<td>0.2</td>
<td>setosa</td>
</tr>
<tr>
<th>3</th>
<td>4.7</td>
<td>3.2</td>
<td>1.3</td>
<td>0.2</td>
<td>setosa</td>
</tr>
<tr>
<th>4</th>
<td>4.6</td>
<td>3.1</td>
<td>1.5</td>
<td>0.2</td>
<td>setosa</td>
</tr>
<tr>
<th>5</th>
<td>5.0</td>
<td>3.6</td>
<td>1.4</td>
<td>0.2</td>
<td>setosa</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># separo en especies</span>
<span class="n">setosa</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="n">iris</span><span class="o">.</span><span class="n">Species</span> <span class="o">==</span> <span class="s1">&#39;setosa&#39;</span><span class="p">]</span>
<span class="n">versicolor</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="n">iris</span><span class="o">.</span><span class="n">Species</span> <span class="o">==</span> <span class="s1">&#39;versicolor&#39;</span><span class="p">]</span>
<span class="n">virginica</span> <span class="o">=</span> <span class="n">iris</span><span class="p">[</span><span class="n">iris</span><span class="o">.</span><span class="n">Species</span> <span class="o">==</span> <span class="s1">&#39;virginica&#39;</span><span class="p">]</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class="highlight-ipynb"><pre class="ipynb"><span></span><span class="c1"># crear histograma</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">8</span><span class="p">))</span>
<span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">setosa</span><span class="p">[</span><span class="s1">&#39;Petal.Length&#39;</span><span class="p">],</span> <span class="mi">12</span><span class="p">,</span>
<span class="n">facecolor</span><span class="o">=</span><span class="s1">&#39;red&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;setosa&#39;</span><span class="p">)</span>
<span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">versicolor</span><span class="p">[</span><span class="s1">&#39;Petal.Length&#39;</span><span class="p">],</span> <span class="mi">12</span><span class="p">,</span>
<span class="n">facecolor</span><span class="o">=</span><span class="s1">&#39;green&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;versicolor&#39;</span><span class="p">)</span>
<span class="n">n</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">patches</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">hist</span><span class="p">(</span><span class="n">virginica</span><span class="p">[</span><span class="s1">&#39;Petal.Length&#39;</span><span class="p">],</span> <span class="mi">12</span><span class="p">,</span>
<span class="n">facecolor</span><span class="o">=</span><span class="s1">&#39;blue&#39;</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s1">&#39;virginica&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s1">&#39;top_right&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">&#39;Histograma largo del pétalo&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;largo del pétalo&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;cuenta largo del pétalo&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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