Loading

Alison's New App is now available on iOS and Android! Download Now

Study Reminders
Support
Text Version

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Opciones básicas de personalización

00:00 Speaker 1: Hola, todo el mundo, y bienvenido a la Parte 2 de la Sección 3 de nuestra Visualización de Datos con Python y la serie de tutorial Matplotlib. En esta parte, de lo que vamos a estar hablando en esta sección son muchas de las opciones de personalización que podemos hacer con Matplotlib. Pero primero necesitamos tener un conjunto de datos decente. Así que podríamos pasar y podríamos crear manualmente este conjunto de datos. Eso sería algo tonto, especialmente cuando hay un montón de conjuntos de datos que podemos conseguir en Internet. Así que el tipo de conjunto de datos que me gustaría que usáramos son las acciones. Así que con los datos de stock, representa un conjunto de datos de tutorial bastante bueno por muy pocas razones en realidad. En primer lugar, los datos de las acciones tienden a venir con múltiples series. Así que lo que quiero decir con eso es que tiene múltiples tipos de datos, por lo que un montón de veces que obtendrás el eje x serán fechas, por lo que ese es un aspecto interesante, pero también tendrás datos de precios, y a veces los datos de precios serán pujas/preguntar si estás pagando mucho dinero por tus datos de todos modos, o puedes obtener datos de apertura-alta-baja, y así es automáticamente cuatro líneas. Hablaremos de lo que es open-high-low-close cuando llegamos a ello.

01:12 S1: Y entonces también podría obtener datos de volumen, que es cuántas empresas se negociaron en ese período de tiempo o cuántas acciones de esa empresa se negociaron en ese período de tiempo. Así que con eso, es otro conjunto de datos. Y el volumen es una escala completamente diferente a la del precio, por lo que nos permite cubrir una gran cantidad de personalización, además de que también podemos hacer varios tipos de transformaciones en los datos. Así que podemos aplicar medias móviles, o lo que sea, y trazar esas también. Así que nos permite una especie de trabajo con una gran cantidad de variaciones de conjuntos de datos. Y luego también, como decía antes, porque es una serie de tiempo, estamos trabajando con fechas y cosas así, por lo que trazar fechas, las fechas no son números, por lo que su gráfica no entiende automáticamente qué fecha. Así que lo que tenemos que hacer es que normalmente tenemos que convertir los datos que tenemos en algún tipo de formato de fecha que es aceptable por nuestro módulo.

02:03 S1: Así que Matplotlib tiene sus propias fechas de mpl que le gustan. Y por ejemplo, otro módulo de gráficos que podrías encontrar usando el camino, tal vez, sería como algún tipo de módulo de trazado de JavaScript. Así que el que viene a mi mente sería algo así como Highcharts, que toma datos en la forma de Unix 1000, eso es como el tiempo de JavaScript. Así que usted necesita ser capaz de ser cómodo con la conversión de sellos de fecha a Unix y Unix a sellos de fecha, y todo tipo de formatos así. Así que trabajar con datos de stock es muy útil, así que eso es lo que vamos a seguir adelante y hacer. Así que primero vamos a hacer nuestro proverbial 'borrar todo', excepto para matplotlib.pyplot. Y al parecer he perdido el ratón. Ahí está. Y así, vamos a borrar todo hasta este punto, y ahora vamos a hacer, vamos a ir adelante e importar una cosa más de Matplotlib, así que importar matplotlib.dates como mdates. Una vez más, la mayoría de las personas que utilizan matplotlib.dates la abrevian a mdates, así que vamos a seguir siguiendo ese estándar.

03:06 S1: Entonces también estamos ... Podemos o no tocar las fechas de Matplotlib en este tutorial específico ahora mismo, pero se utilizará en esta sección. A continuación vamos a ir adelante e importar url lib porque vamos a estar accediendo a Internet. Y luego vamos a importar NumPy como NP, porque vamos a usar NumPy para hacer algo de nuestro crujido básico y cosas así. Así que como estaba diciendo antes, NumPy se vuelve bastante integral, bastante rápido, en cualquier momento que estés trabajando con números de datos. Así que si no tienes NumPy, de nuevo, haces pip install NumPy, no hay problema.

03:40 S1: Así que primero lo que vamos a seguir adelante y lo hacemos es que necesitamos algún tipo de función que va a agarrar los datos, y vamos a seguir adelante y usar la API de Yahoo Finance. Si no estás familiarizado con ella eso está totalmente bien. No hay ninguna autorización o autenticación que vaya ahí. Es información gratuita, por lo que no es necesario tener una cuenta con Yahoo ni nada por el estilo. Así que para empezar, vamos adelante y vamos a definir, y vamos a llamar a este 'graf_data,' y luego vamos a tener un parámetro que pasamos, y que va a ser stock. Así que lo que va a ser es cualquier acción que pasemos como ese parámetro, eso es lo que va a ser tirado y graficado. Así que para ayudarnos a saber qué empresa estamos haciendo, vamos a seguir adelante e imprimir esa empresa, así que imprimiremos, y haremos 'actualmente tirando', entonces haremos, coma, stock. Así que solo decir, actualmente tirando, y luego haremos un colon allí y se imprimirá el ticker que estamos tirando. Así que si no estás familiarizado con ... Las existencias son identificadas por sus tickers. Así por ejemplo, Apple, la empresa que vende teléfonos y ordenadores y cosas, su ticker ... Su nombre es A-P-P-L-E, Apple Incorporated, y luego tienes su ticker es AAPL. O como otro sería como Tesla con sus coches eléctricos, son TSLA, así que solo entiende eso. Siempre puedes ir a Google y escribir el nombre de la compañía y puedes averiguar el ticker si no lo sabes ya.

05:05 S1: Así que de todos modos, vamos a tirar de eso y ahora vamos a escribir la URL. Así que este será el URL que ... Y llamaremos a este URL igual a ... Y este será el URL de ese ticker específico de la API de Yahoo Finance. Así que vamos a poner esto en una cadena, y será ' http: // api.finance.yahoo.com/instrument/1.0/ + + '' y entonces esto en aquí será la acción, así que este es en realidad el ticker. Así que actualmente tirando, esto será ticker, este es el ticker para ese stock, este es el ticker. Así que este podría ser en teoría 'AAPL/chartdata; cita' porque es una cotización de precios, y luego podemos especificar el rango aquí. Así que el rango será igual a lo que queramos y solo vamos a hacer 10 años por ahora. Jugaremos con rangos a medida que vayamos. Las API de Yahoo Finance conmutan sus representaciones de fecha.

06:25 S1: Así que si usted hace realmente corto plazo como un día o tres días, usted conseguirá sellos de tiempo que son tiempo de UNIX. Y si usted hace más tiempo marcos, creo que algo después de 10 días, será su ... 10 días y más tiempo, estará representado en sellos de fecha como que usted puede mirar y usted los leería. Así que de todos modos, manejaremos con ambos o lidiaremos con ambos para que sepas cómo manejarlos. Pero por ahora vamos a empezar con 10 años y luego vamos a hacer /CSV y cerrar nuestra cita allí. Así que, en teoría, vamos por delante y solo imprimiremos la URL. Vale, así que vamos a bajar aquí y luego, vamos a decir como stock aquí es igual y luego vamos a decir entrada y luego stock como este 'stock2plot:' Añadir un espacio porque de lo contrario si lo escribe le gustará el tipo encima de él.

07:19 S1: So stock2plot, por lo que esto le permitirá al usuario escribir algo en. Así que la entrada sólo nos permite escribir en la consola básicamente. Y luego vamos a seguir adelante y vamos a correr graf_data para lo que sea ese stock. Así que solo diremos stock. Pasamos por stock aquí que también se llama stock, stock y construye esta URL al menos. Y entonces sólo vamos a imprimir el URL, y luego lo visitaremos manualmente para mirarlo. Así que, sigamos adelante y salvemos y corramos eso. Por lo tanto, debe aparecer tu cónsul aquí. Permítanme que lo arrastre. No puede parecer tocarlo ahora mismo. Así que muévalo por aquí y digamos que wanna do TESLA. Así que este sería el URL que nos alimenta. Así que vamos a copiar ese URL y vamos a abrirlo en un navegador. Así que, cuando lo visitamos en un navegador, esto es lo que conseguimos. Es un pequeño precio pequeño así que déjenme sólo zoom en un poco para ustedes. Y así son los datos. Así que esto fue con el CSV de 10 años. Y así puedes ver aquí que hay alguna información inicial aquí que es básicamente inútil para nosotros. Pero luego si nos desplazamos un poco hacia abajo, esto empieza a parecer unos datos bastante normalizados. Por lo tanto, podemos mirar esto visualmente y kinda tomar un gander en lo que es esto.

[chukle]

08:33 S1: Así que vamos a ver. Vamos a ir a aquí. Así que tienes que decir esta línea aquí. Este es el sello de la fecha y podemos deducir. Podría ser algo difícil de ver visualmente, pero sabemos que este es el año. Así, 2011, el mes, tan 10 tan octubre y luego el día, así que el 3º. Así que el 3 de octubre de 2011, y luego tenemos la información de precios. Y le ordenan una especie de funky. Ellos sí cierran-alta-baja-abierta. Y luego finalmente el ... Así que esto está cerca, esto es lo alto para todo el día, esto es lo bajo para todo el día, y este es el abierto. Entonces, cuando los precios de ese día se abrieron, al abrir el mercado, ¿cuál era el precio de la empresa? Era 24,95. Para todo ese día, ¿cuál fue el precio más alto? 27.6 y luego tienes alguna otra información allí. Y luego este es el volumen por lo que así es como se comercializaron muchas acciones de esa empresa. Eso es realmente un poco de volatilidad de 22 a 27. Como, oh, mi gosa. [chukle] Eso fue ... Se trata de un stock bastante volátil como supongo inicialmente. Oh, mi bondad. Ellos tenían bastantes ... Al igual que estos rangos son masivos para las acciones de comp. Como por lo general tienes como el 1% en un día como el más. De todos modos, así que este es nuestro dato y vamos a seguir trabajando con esto en los próximos tutoriales estaremos hablando de cómo analizar todos estos datos y asignarlo a variables, y luego pronto lo vamos a graficar y todo eso. Así que, estad atentos para eso.
00:00 Speaker 1: Hola a todos, y bienvenidos a la cuarta parte de la Sección Tres, que es la visualización de datos en Python con matplotlib. En esta parte, de lo que vamos a hablar es de crear esta función de conversión para nuestra información de datos que estamos tirando fuera de línea. Así que como yo estaba diciendo a veces la conversión de datos de la fecha por lo que realmente podemos graficar en un gráfico puede ser confuso, pero una vez que te acostumbras a manejar para datos de la fecha ya no se vuelve tan tedioso. Así que, de todos modos, en la conversión hemos especificado una función de conversión pero en realidad no tenemos esa función. Así que vamos a seguir adelante y construir esa función ahora. Así que vamos a hacer una nueva función aquí y vamos a llamarla lo mismo obviamente, por lo que bytes pdate2num y luego esta función toma un formato y luego toma la codificación. Y la codificación va a ser TF8 porque esa es la codificación de los datos de Internet.

00:56 S1: Por lo tanto: Lo que vamos a hacer ahora es que vamos a empezar primero con un serie_convertidor y el convertidor de cuerdas es el equivalente de las fechas M que normalmente es cómo se utiliza para trabajar y fue genial, pero no funciona completamente todavía en tres de modo que es igual a M dates.strpdate2num, así que tira de la fecha al número y luego formato, fmt. Así que en el pasado, usted solía ser capaz de decir que su convertidor era básicamente igual a esto, ¿verdad? Así. Así que podríamos copiar esto y pegar. Y esa base ... Eso solía funcionar en Python 2 pero no funcionará en tres debido a esta información de bytes. Por lo tanto, el convertidor de cadena es igual a eso, pero entonces tenemos que hacer algunas cosas más. Así que vamos a hacer un ... Vamos a crear esta pequeña función de prueba y se llamará convertidor de bytes y luego vamos a pasar en B aquí y luego vamos a decir S=b.decode utilizando el formato de codificación allí. Por lo tanto, estamos decodificando UTF8 entonces vamos a devolver el str_converter S entonces devolvemos el bytes_ ... O bytes, no pusimos de relieve. Vamos a añadir un subrayado aquí. Por lo tanto, subrayado y subrayado.

02:34 S1: Así que esto debería convertir los datos al formato que queremos que está en formato de fechas M. Así que bajamos aquí y vamos adelante y solo imprimir fecha. Así que después de esta larga línea aquí, vamos a imprimir la fecha y ver si realmente funcionó la manera que queríamos. Así que sólo vamos a ahorrar y ejecutar rápido. Seguiremos con TSLA. Vale, seguro que trazamos estas fechas M. Vale, así que estas son tus fechas y todo es genial. Así que, a pesar de ... Sí, de nuevo estas fechas significan nada probablemente para ti pero significa mucho para matplotlib. Así que ese son los números que vamos a ver, algo en los 700,000s por ahora. Tan cerca eso. Enfriar. Así que nuestra conversión funcionó a pesar de que puede que no se vea lo mejor, pero ahora estamos listos para realmente trazar alguna información. Así que lo que podemos hacer ahora es en lugar de la fecha allí, sólo eliminaremos eso. Y luego ahora, podemos hacer plt.plot_date, así que estamos notificando a matplotlib que estamos a punto de pasar fechas a él. La fecha y luego el cierre P, entonces haremos un plt.show real rápido. Plt.show.

03:47 S1: Ahora con matplotlib, cuando hacemos una fecha de trazado no es el valor predeterminado para la trama de líneas. Toma por defecto una trama dispersa así que déjame mostrarte, no una dispersa, toma por defecto sólo un marcador de puntos aunque así si hacemos TSLA de nuevo, el gráfico que aparecerá aquí. ¿Verdad, así que ves que los pequeños marcadores son estos pequeños puntos? Bueno, así que podemos manejar para eso cerrando aquí y añadir otro argumento aquí y que es sólo el tipo de línea, así que sólo hacer un guión, ¿verdad? Por lo tanto, el guión es dos claves de la tecla de retroceso. Ahora vamos a correr eso una vez más. Oh, yo era como " ¿Dónde está el gráfico? No está apareciendo ". TSLA y ahora tenemos realmente un gráfico de líneas. Ahora, permítanme que lo haga un poco más grande aquí. Así que podemos ver que tenemos julio, Jan; básicamente Jan y julio todo el camino a través de pero lo que pasa, lo que es bastante fresco sobre el formato de fecha es ahora mismo se puede ver es sólo el mes y el año, y realmente no muchos meses, es sólo enero y julio, y julio está a mitad de camino. Así que realmente estos son sólo cada seis meses que estamos obteniendo un marcador allí.

04:55 S1: Pero si nos acercaremos a un punto específico, verás que, "Oh, nos llevamos más meses". ¿No? Conseguimos febrero y abril pero cuando podemos hacer zoom en algunos más, y ahora tenemos varios días dentro de febrero. Y podríamos seguir haciendo zoom y se puede ver ahora tenemos seis, siete, ocho, nueve, 10, 11, 12 y no tenemos datos de granularidad realmente altos aquí. Pero en realidad podríamos seguir haciendo zoom y ahora se pueden ver estas son indicaciones de fecha y hora en esa fecha, ¿de acuerdo? Por lo tanto, no tenemos datos para ese tiempo, pero podemos en teoría simplemente continuar haciendo zoom y realmente, realmente, realmente, realmente, muy cerca. [chuckle] De todos modos, bien, así que eso funcionó. Así que ahora tenemos nuestro conjunto de datos, tenemos un gráfico realmente simple. No tenemos nuestros títulos y nuestras etiquetas y todo ese material todavía. Pero lo que vamos a hacer en esta serie es personalizar este gráfico para incluir todo tipo de personalizaciones impresionantes, colores, opciones, y todas estas cosas buenas. Por lo tanto, esto debería ser bastante emocionante y por suerte no vamos a estar realmente haciendo demasiado reescritura de código, sólo vamos a añadir encima de básicamente este gráfico. Así que no tanto de esa proverbial borrando esta vez. Así que de todos modos, series o secciones bonitas que se acercan pronto. Así que, estad atentos para eso y gracias por ver.