guía
Al comienzo de ingresar la posición de datos, escribí una serie de tutoriales introductorios para varios conjuntos de herramientas de ciencia de datos, incluidos Numpy , Pandas , Matplotlib , Seaborn , Sklearn , etc., que también constituían mi pila de herramientas principal original. Entre estos 5 juegos de herramientas, 2.5 se utilizan para el trazado de datos (Pandas se puede contar como 0.5). La alta proporción está relacionada con la "indulgencia" en la visualización simple y efectiva en ese momento, y se puede decir que nunca me canso de eso. . Después de más de un año, después de estar en contacto constante con Plotly, un advenedizo de visualización, finalmente aprendí formalmente sobre el uso, las características, las ventajas y las desventajas de este paquete recientemente, y lo resolví un poco para aprender del futuro, así que escribió este artículo!
Plotly es simple, eficiente e interactivo, ¡vale la pena intentarlo!
01 Por qué aprender ploteado
Plotly, el nombre de este paquete no es poco intuitivo, debe ser una herramienta para dibujar imágenes de un vistazo; pero al mismo tiempo, todavía no es intuitivo, porque plotly es en realidad una biblioteca de dibujo multilingüe, y cuando se trata de plotly A más la referencia probable es plotly en JavaScript. De hecho, plotly es una biblioteca de dibujo basada en JavaScript y luego se introdujo en Python, por lo que para referirse a plotly en Python de manera más específica, generalmente se puede llamar plotly.py.
Plotly admite plataformas multilingües
Entonces, ¿por qué plotly no sigue la práctica de muchas bibliotecas de terceros en Python y lo nombra directamente pyplotly? Después de todo, existen muchos precedentes de este tipo, como pyecharts, pymysql, pytorch, etc.
Además, ¿por qué gastar costos de aprendizaje adicionales para comenzar con plotly después de dominar matplotlib y seaborn, que pueden completar casi todos los requisitos de dibujo? En otras palabras, ¿cuáles son las ventajas principales o los lugares insustituibles de plotly? En resumen: ¡Interactividad! Sí, el dibujo de plotly admite la interacción, que no está disponible en matplotlib y seaborn (más estrictamente hablando, no es interactivo por defecto).
Por supuesto, hay más de una biblioteca de dibujo interactivo, por ejemplo, ¡he probado pyecharts antes! Pero para mí, es solo que los resultados de dibujo de pyecharts necesitan abrir una página web separada, lo cual es un poco engorroso Al mismo tiempo, la sintaxis de dibujo de plotly es más cercana a matplotlib y seaborn, y el umbral de aprendizaje es más suave. Basado en las ricas actividades internas mencionadas anteriormente, elegí la trama y finalmente decidí estudiar sistemáticamente y probarlo.
02 ¿Qué puede hacer plotly?
Como biblioteca de visualización, plotly, por supuesto, se puede utilizar para dibujar imágenes, y es una variedad de ricos estilos de imágenes. Afortunadamente, aquí hay una referencia directa a la introducción del sitio web oficial de plotly:
La biblioteca plotly de Python es una biblioteca de gráficos interactiva y de código abierto que admite más de 40 tipos de gráficos únicos que cubren una amplia gama de casos de uso estadísticos, financieros, geográficos, científicos y tridimensionales.
Algunas palabras clave son: código abierto, interactivo, admite más de 40 tipos de gráficos, que abarcan estadísticas, finanzas, geografía, ciencia y gráficos 3D.
Eche un vistazo a la demostración de la tabla proporcionada directamente por el sitio web oficial:
Serie de gráficos estadísticos y científicos
Serie de gráficos financieros y geográficos
Serie de ciencia de IA
Se pueden ver más tipos de gráficos en el sitio web oficial. En resumen, plotly tiene funciones completas y potentes.
03 Cómo dibuja gráficamente
Dado que este artículo se posiciona como una serie de introducción, debe presentar cómo usar y comenzar.
En primer lugar, el proceso de instalación de la biblioteca plotly en python es muy simple y hay pocas dependencias (se encuentra a través de pip show plotly que solo hay 2 paquetes dependientes). Tanto pip como conda pueden completar rápidamente la instalación a través del método de instalación convencional.
En segundo lugar, se brinda una introducción general de cada módulo componente en plotly, para comprender la estructura macroscópica de plotly y el posicionamiento de cada módulo desde una perspectiva macro. Abra la carpeta del código fuente de plotly, puede ver que contiene principalmente las siguientes subcarpetas, que básicamente corresponden a varios submódulos en plotly:
Además de la subcarpeta anterior, plotly tiene varios archivos .py independientes
Específicamente, los siguientes submódulos generalmente están involucrados en la aplicación de ploteo para visualización:
express: una API de alto nivel para visualización en plotly
graph_objects: la interfaz de dibujo subyacente, incluidos todos los diseños y objetos gráficos (graph_objs es un paquete con el mismo nombre)
io: interfaz de bajo nivel para mostrar, leer y escribir gráficos
colors: se utiliza para configurar el color del gráfico relacionado
datos: proporciona algunas funciones integradas de carga de conjuntos de datos, como iris, conjunto de datos de consejos
De hecho, para comenzar con plotly de manera muy simple y rápida, ¡tal vez solo necesite concentrarse en los dos submódulos de plotly.express y plotly.graph_objects! Antes del uso específico, primero introduzca la diferencia y el posicionamiento de los dos:
plotly.graph_objects es la API subyacente, un estilo de dibujo orientado a objetos, que define todos los objetos gráficos en plotly (traducido de graph_objects, ¿no es ese el significado de los objetos gráficos, realmente simple y rudo!) y proporciona un conjunto de diseño similar la función (diseño), similar al rol de matplotlib;
plotly.express es una API de alto nivel y un estilo de dibujo funcional. El proceso de dibujo es el proceso de especificar cada parámetro de la función, lo que proporciona una función de dibujo más concisa y conveniente . Si el primero es similar a matplotlib, entonces plotly.express es equivalente al papel de seaborn.
Buen chico, plotly tiene que definir dos conjuntos de estilos de dibujo.¿Realmente va a reemplazar el estado de matplotlib+seaborn? Pero para los usuarios, puede ser popular: si necesita ser rápido y conciso, use plotly.express; si necesita una personalización personalizada, use plotly.graph_objects.
A continuación, se dan dos ejemplos de código simple basados en plotly
1) Utilice la API subyacente - graph_objects
La razón por la que graph_objects se denomina API subyacente es porque expone más detalles y parámetros de dibujo, pero esto tiene ventajas y desventajas. En términos generales, el dibujo basado en el submódulo graph_objects se divide principalmente en tres pasos:
Seleccione un objeto de gráfico (graph_object) y configure los datos que se van a trazar, como los datos x e y, las propiedades del gráfico, como el título, el tipo de línea, etc.
Establezca algunos diseños y configure los parámetros de diseño, como el tamaño de la imagen, el título, etc.
Cree un objeto de figura y reciba el objeto de gráfico y el objeto de diseño obtenidos en los dos primeros pasos y luego muéstrelos
Por ejemplo:
import plotly.graph_objects as go # 标准引用格式,一般简写为:go
import plotly.express as px # 标准引用格式,一般简写为:px
tips = px.data.tips() # plotly内置数据集:tips
# 使用graph_objects绘图流程需要三步
line = go.Scatter(x=tips['total_bill'], y=tips['tip'], mode='markers') # ① 创建图表对象
layout = go.Layout(autosize=False, width=900, height=600, title='tips') # ② 创建布局对象
go.Figure(data=line ,layout=layout).show() # 创建Figure,接收图表和布局,并加以显示
2) Usar API avanzada - express
La razón por la que express se llama una API de alto nivel es porque tiene una abstracción de más alto nivel, o puede obtener resultados de dibujo más ricos con menos código.La interfaz de dibujo express más importante parece estar naturalmente adaptada a pd.DataFrame Existe , porque el primer parámetro en sus diversas funciones de dibujo es data_frame! Después de configurar este parámetro, los datos x e y solo necesitan proporcionar los nombres de columna correspondientes. Por ejemplo, para los mismos requisitos de dibujo anteriores, solo se necesita llamar a una función:
import plotly.graph_objects as go # 标准引用格式,一般简写为:go
import plotly.express as px # 标准引用格式,一般简写为:px
tips = px.data.tips() # plotly内置数据集:tips
# 使用express绘图只需要调用一个函数
px.scatter(tips, x='total_bill', y='tip', width=900, height=600, title='tips').show()
Por supuesto, los resultados de dibujo obtenidos por los dos métodos anteriores son los mismos, y esta imagen proporciona funciones interactivas comunes, como selección de área (incluyendo área rectangular y área personalizada), zoom, movimiento y almacenamiento y otros botones interactivos comunes, demostración simple como sigue:
Luego demuestre un diagrama de violín que prefiero para mostrar la relación de distribución entre categorías:
¿Tiene olor a marino? . ?
Otros dos puntos que vale la pena agregar:
1) Plotly proporciona una interfaz para convertir un dibujo matplotlib en un dibujo plotly, lo que hace que el uso combinado de dos bibliotecas de visualización sea más fluido hasta cierto punto, pero es necesario probar la experiencia específica;
2) La primera versión de plotly también distingue entre en línea y fuera de línea. El método fuera de línea es el método de dibujo convencional mencionado anteriormente, y el método en línea probablemente necesite conectarse al servidor web de plotly. Sin embargo, creo que puede no ser útil, por lo que se elimina en V4.0. Para obtener más información, consulte la Nota proporcionada por el sitio web oficial de plotly:
Lectura relacionada:
Escrito en 1024: El camino a la práctica de un analista de datos
Serie de ciencia de datos: Introducción a los módulos principales de la biblioteca sklearn
Serie de ciencia de datos: tutorial detallado de introducción a Seaborn
Serie de ciencia de datos: Tutorial detallado de introducción a Pandas
Serie de ciencia de datos: tutorial detallado para comenzar con matplotlib
Serie de ciencia de datos: tutorial detallado para comenzar con numpy