Compartir tecnología

Tutorial de bqplot: visualización interactiva de datos en Jupyter Notebook

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Directorio de artículos

introducir

1.1 La importancia de la visualización de datos

La visualización de datos consiste en mostrar datos en forma de gráficos para ayudar a las personas a comprender la información y los patrones detrás de los datos de manera más intuitiva y rápida. En la era actual de explosión de la información, la visualización de datos es particularmente importante por las siguientes razones:

  • Mejorar la eficiencia de la comprensión : Los datos gráficos son más fáciles de entender y recordar para el cerebro que el texto sin formato o los números. A través de gráficos, las personas pueden capturar rápidamente puntos clave de datos para tomar decisiones más informadas.
  • Revelar patrones de datos : La visualización de datos puede ayudar a descubrir patrones ocultos, tendencias y valores atípicos en sus datos. Por ejemplo, un gráfico de líneas puede ver claramente cómo cambian los datos con el tiempo.
  • Mejorar el efecto de comunicación. : En campos como los negocios, la investigación científica y la educación, la visualización de datos es una herramienta poderosa para comunicar información compleja. Hace que los resultados del análisis de datos sean más fáciles de entender y aceptar por parte de otros.
  • Apoyar la toma de decisiones: La visualización de datos proporciona a quienes toman decisiones un soporte de datos intuitivo, ayudándoles a encontrar información clave en datos complejos y a tomar decisiones más científicas y razonables.

1.2 Descripción general de la biblioteca bqplot

diagrama bq es una base enGramática de los gráficos Biblioteca de visualización 2D, específica paraCuaderno Jupyter diseño.combinad3.js ywidgets de ipy característica diseñada para llevar las poderosas capacidades de visualización de d3.js a Python. Estas son algunas de las características clave de la biblioteca bqplot:

  • interactividad: bqplot proporciona funciones interactivas ricas. Los usuarios pueden desplazarse, hacer zoom, seleccionar y otras operaciones en el gráfico para explorar los datos más profundamente.
  • flexibilidad: Utilizando un enfoque orientado a objetos, los usuarios pueden crear gráficos altamente personalizados utilizando la Gramática de gráficos.
  • Facilidad de uso: bqplot proporciona una interfaz pyplot similar a matplotlib, lo que permite a los usuarios familiarizados con matplotlib comenzar rápidamente.
  • Integración: Como biblioteca nativa de Jupyter Notebook, bqplot se puede integrar perfectamente en el flujo de trabajo de análisis de datos, brindando a los usuarios una experiencia interactiva fluida.
Instalación y inicio rápido

Instalar bqplot es muy simple, simplemente ejecute el siguiente comando en la terminal o símbolo del sistema:

pip install bqplot
jupyter nbextension enable --py --sys-prefix bqplot
  • 1
  • 2

Después de una instalación exitosa, importe las bibliotecas necesarias a Jupyter Notebook para comenzar a usar:

import numpy as np
import bqplot.pyplot as plt
  • 1
  • 2

Aquí hay un ejemplo simple que muestra cómo crear un histograma usando bqplot:

# 生成随机数据
data = np.random.randn(100)

# 创建直方图
fig = plt.figure(title='Histogram by bqplot')
hist = plt.hist(sample=data, bins=10, colors=['#01a2d9'])
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

A través de este sencillo ejemplo, puede ver la facilidad de uso y las potentes funciones interactivas de bqplot. En los siguientes capítulos, profundizaremos en los diversos tipos de gráficos y funciones avanzadas de bqplot.

Instalar e importar

2.1 Instalar bqplot

Antes de comenzar a utilizar bqplot para la visualización de datos, primero debe instalar la biblioteca bqplot en su entorno. bqplot se puede instalar de varias maneras, la más común usando pip o conda. Estos son los pasos detallados para usar ambos métodos:

Instalar usando pip
pip install bqplot
  • 1
Instalar usando conda
conda install -c conda-forge bqplot
  • 1

Una vez completada la instalación, puede confirmar si la instalación se realizó correctamente ejecutando el siguiente comando:

import bqplot
print(bqplot.__version__)
  • 1
  • 2

2.2 Importar bibliotecas necesarias

Después de instalar bqplot, deberá importar las bibliotecas necesarias para comenzar el trabajo de visualización de datos. Normalmente, necesita importar las siguientes bibliotecas:

  • bqplot: Se utiliza para crear gráficos interactivos.
  • numpy: Se utiliza para cálculos numéricos y procesamiento de datos.
  • pandas: Se utiliza para la manipulación y análisis de datos.

Aquí hay un código de muestra para importar estas bibliotecas:

import bqplot.pyplot as plt
import numpy as np
import pandas as pd
  • 1
  • 2
  • 3
Ejemplo: importar y usar bqplot para crear un gráfico simple

Para asegurarse de que todo esté configurado correctamente, puede intentar crear un gráfico de barras simple. Aquí hay un código de muestra que muestra cómo importar las bibliotecas necesarias y crear un gráfico de barras simple:

# 导入必要的库
import bqplot.pyplot as plt
import numpy as np

# 创建一个简单的条形图
fig = plt.figure(title="简单条形图示例")
x = list("ABCDE")
y = np.random.rand(5)
bar = plt.bar(x, y)
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

En este ejemplo, primero importamosbqplot.pyplotcomoplt, luego usanumpy Generar datos aleatorios. A continuación, creamos un gráfico de barras simple con cinco barras y lo mostramos en un Jupyter Notebook.

A través de los pasos anteriores, instaló e importó con éxito la biblioteca bqplot y creó su primer gráfico interactivo simple. A continuación, puede continuar explorando funciones y tipos de gráficos más avanzados.

Preparación del conjunto de datos

3.1 Importar conjunto de datos

Antes de comenzar a usar bqplot Antes de poder realizar la visualización de datos, primero debe importar el conjunto de datos requerido.A continuación se muestran algunos métodos comunes de importación de conjuntos de datos y cómo utilizarlos.pandas biblioteca para procesar estos datos.

Importar archivos CSV usando pandas

pandas Es una poderosa biblioteca de procesamiento de datos que se usa ampliamente para el análisis y preprocesamiento de datos.Aquí se explica cómo utilizarpandas Ejemplo de importación de un archivo CSV:

import pandas as pd

# 导入CSV文件
df1 = pd.read_csv("../input/autompg-dataset/auto-mpg.csv")
  • 1
  • 2
  • 3
  • 4
Utilice pandas para importar datos en otros formatos

Además de los archivos CSV,pandas También admite la importación de datos en múltiples formatos, como archivos Excel, archivos JSON, etc. Aquí hay unos ejemplos:

# 导入Excel文件
df_excel = pd.read_excel("../input/dataset.xlsx")

# 导入JSON文件
df_json = pd.read_json("../input/dataset.json")
  • 1
  • 2
  • 3
  • 4
  • 5
Utilice pandas para importar datos de la base de datos

Si los datos se almacenan en una base de datos, puede utilizar pandas deread_sql función para importar datos. Aquí hay un ejemplo:

import sqlite3

# 连接到SQLite数据库
conn = sqlite3.connect('../input/database.db')

# 从数据库中读取数据
df_sql = pd.read_sql('SELECT * FROM table_name', conn)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.2 Vista previa del conjunto de datos

Después de importar un conjunto de datos, normalmente necesita obtener una vista previa del conjunto de datos para comprender la estructura y el contenido de los datos.pandas Se proporcionan varios métodos para obtener una vista previa del conjunto de datos.

Ver las primeras filas del conjunto de datos

usar head() Método para ver las primeras filas del conjunto de datos:

# 查看前5行数据
print(df1.head())
  • 1
  • 2
Ver información básica sobre el conjunto de datos.

usar info() El método puede ver la información básica del conjunto de datos, incluido el tipo de datos y los valores faltantes:

# 查看数据集的基本信息
print(df1.info())
  • 1
  • 2
Ver estadísticas de un conjunto de datos

usar describe() El método puede ver la información estadística del conjunto de datos, incluida la media, la desviación estándar, el valor mínimo, el valor máximo, etc.:

# 查看数据集的统计信息
print(df1.describe())
  • 1
  • 2
Ver los nombres de las columnas del conjunto de datos

usar columns Las propiedades pueden ver los nombres de las columnas del conjunto de datos:

# 查看数据集的列名
print(df1.columns)
  • 1
  • 2

A través de los métodos anteriores, puede tener una comprensión básica del conjunto de datos importados, sentando así las bases para el trabajo posterior de visualización de datos.

{
  "title": "bqplot教程:在Jupyter Notebook中进行交互式数据可视化",
  "summary": "本文详细介绍了如何使用bqplot库在Jupyter Notebook中进行交互式数据可视化。bqplot是一个基于Grammar of Graphics的2D可视化解决方案,结合了d3.js和ipywidgets的功能,旨在将d3.js的功能带到Python中。",
  "content_outline": [
    {
      "h1": "基本图表类型",
      "h2": [
        "4.1 散点图",
        "4.2 饼图",
        "4.3 箱线图",
        "4.4 条形图",
        "4.5 堆积条形图"
      ]
    }
  ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

Tipos de gráficos básicos

4.1 Diagrama de dispersión

Un diagrama de dispersión es un gráfico que se utiliza para mostrar la relación entre dos variables. Los diagramas de dispersión le permiten observar visualmente la distribución y correlación de los datos. En bqplot, crear diagramas de dispersión es muy sencillo.

import bqplot as bq
import numpy as np

# 创建数据
x = np.random.rand(100)
y = np.random.rand(100)

# 创建尺度
x_sc = bq.LinearScale()
y_sc = bq.LinearScale()

# 创建散点标记
scatter = bq.Scatter(x=x, y=y, scales={'x': x_sc, 'y': y_sc})

# 创建轴
ax_x = bq.Axis(scale=x_sc, label='X Axis')
ax_y = bq.Axis(scale=y_sc, orientation='vertical', label='Y Axis')

# 创建图表
fig = bq.Figure(marks=[scatter], axes=[ax_x, ax_y], title='Scatter Plot')

# 显示图表
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

4.2 Gráfico circular

El gráfico circular es un gráfico que se utiliza para mostrar la proporción de datos. En bqplot, crear gráficos circulares es igualmente fácil.

import bqplot as bq

# 创建数据
data = [10, 20, 30, 40]
labels = ['A', 'B', 'C', 'D']

# 创建饼图标记
pie = bq.Pie(sizes=data, labels=labels)

# 创建图表
fig = bq.Figure(marks=[pie], title='Pie Chart')

# 显示图表
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

4.3 Diagrama de caja

Un diagrama de caja es un gráfico que se utiliza para mostrar la distribución de datos. Puede mostrar la mediana, los cuartiles y los valores atípicos de los datos.

import bqplot as bq
import numpy as np

# 创建数据
data = [np.random.normal(0, 1, 100), np.random.normal(3, 1, 100), np.random.normal(6, 1, 100)]

# 创建尺度
x_sc = bq.OrdinalScale()
y_sc = bq.LinearScale()

# 创建箱线图标记
boxplot = bq.Boxplot(x=data, scales={'x': x_sc, 'y': y_sc})

# 创建轴
ax_x = bq.Axis(scale=x_sc, label='Groups')
ax_y = bq.Axis(scale=y_sc, orientation='vertical', label='Values')

# 创建图表
fig = bq.Figure(marks=[boxplot], axes=[ax_x, ax_y], title='Box Plot')

# 显示图表
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

4.4 Gráfico de barras

Un gráfico de barras es un gráfico que se utiliza para mostrar comparaciones entre datos categóricos. La altura de cada barra representa el valor de los datos para esa categoría.

import bqplot as bq

# 创建数据
x_labels = ['A', 'B', 'C', 'D']
y_values = [30, 20, 40, 10]

# 创建尺度
x_sc = bq.OrdinalScale()
y_sc = bq.LinearScale()

# 创建条形图标记
bar = bq.Bars(x=x_labels, y=y_values, scales={'x': x_sc, 'y': y_sc})

# 创建轴
ax_x = bq.Axis(scale=x_sc, label='Categories')
ax_y = bq.Axis(scale=y_sc, orientation='vertical', label='Values')

# 创建图表
fig = bq.Figure(marks=[bar], axes=[ax_x, ax_y], title='Bar Chart')

# 显示图表
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

4.5 Gráfico de barras apiladas

Un gráfico de barras apiladas es un gráfico que se utiliza para mostrar comparaciones entre múltiples datos categóricos. La altura de cada barra representa el valor de los datos para esa categoría, y cada barra se puede dividir en segmentos, cada segmento representa una subcategoría.

import bqplot as bq

# 创建数据
x_labels = ['A', 'B', 'C', 'D']
y_values = [
    [30, 20],
    [20, 30],
    [40, 10],
    [10, 40]
]

# 创建尺度
x_sc = bq.OrdinalScale()
y_sc = bq.LinearScale()

# 创建堆积条形图标记
stacked_bar = bq.Bars(x=x_labels, y=y_values, scales={'x': x_sc, 'y': y_sc}, type='stacked')

# 创建轴
ax_x = bq.Axis(scale=x_sc, label='Categories')
ax_y = bq.Axis(scale=y_sc, orientation='vertical', label='Values')

# 创建图表
fig = bq.Figure(marks=[stacked_bar], axes=[ax_x, ax_y], title='Stacked Bar Chart')

# 显示图表
fig
  • 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

Tipos de gráficos avanzados

5.1 Histograma

Un histograma es un tipo de gráfico que se utiliza para mostrar la distribución de datos.existirbqploten, se puede utilizarplt.hist función para crear un histograma. He aquí un ejemplo sencillo:

import numpy as np
import bqplot.pyplot as plt

# 生成随机数据
data = np.random.randn(1000)

# 创建直方图
fig = plt.figure()
hist = plt.hist(data, bins=30)
plt.title('Histogram of Random Data')
plt.xlabel('Value')
plt.ylabel('Frequency')

fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

En este ejemplo, primero generamos 1000 puntos de datos aleatorios y luego usamosplt.hist La función crea un histograma con 30 contenedores. Puede hacer que su gráfico sea más claro y fácil de entender configurando títulos y etiquetas de ejes.

5.2 Gráfico de líneas

Los gráficos de líneas son un tipo de gráfico común que se utiliza para mostrar tendencias en los datos a lo largo del tiempo u otras variables continuas.existirbqploten, se puede utilizarplt.plot Función para crear un gráfico de líneas. Aquí hay un ejemplo:

import numpy as np
import bqplot.pyplot as plt

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建折线图
fig = plt.figure()
line = plt.plot(x, y)
plt.title('Line Chart of Sine Function')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

En este ejemplo, generamos datos de función seno con 100 puntos de datos y luego usamosplt.plot La función crea un gráfico de líneas. Puede hacer que su gráfico sea más claro y fácil de entender configurando títulos y etiquetas de ejes.

5.3 Gráfico de velas japonesas

Los gráficos de velas (también conocidos como gráficos de velas) son un tipo de gráfico que se utiliza para mostrar datos financieros, como los precios de las acciones.existirbqploten, se puede utilizarplt.candle función para crear gráficos de velas japonesas. Aquí hay un ejemplo:

import numpy as np
import bqplot.pyplot as plt

# 生成随机金融数据
n = 100
open_prices = np.random.randn(n)
high_prices = open_prices + np.random.rand(n)
low_prices = open_prices - np.random.rand(n)
close_prices = open_prices + np.random.randn(n) * 0.5

# 创建蜡烛图
fig = plt.figure()
candle = plt.candle(open_prices, high_prices, low_prices, close_prices)
plt.title('Candlestick Chart of Random Financial Data')
plt.xlabel('Time')
plt.ylabel('Price')

fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

En este ejemplo, generamos datos aleatorios de precios de apertura, máximo, mínimo y cierre y luego usamosplt.candle La función crea un gráfico de velas. Puede hacer que su gráfico sea más claro y fácil de entender configurando títulos y etiquetas de ejes.

5.4 Mapa de calor

Un mapa de calor es un tipo de gráfico que se utiliza para mostrar la densidad o distribución de intensidad de datos bidimensionales.existirbqploten, se puede utilizarplt.heatmap Función para crear un mapa de calor. Aquí hay un ejemplo:

import numpy as np
import bqplot.pyplot as plt

# 生成随机数据
data = np.random.rand(10, 10)

# 创建热力图
fig = plt.figure()
heatmap = plt.heatmap(data)
plt.title('Heatmap of Random Data')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')

fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

En este ejemplo, generamos una matriz de 10x10 de datos aleatorios y luego usamosplt.heatmap La función crea un mapa de calor. Puede hacer que su gráfico sea más claro y fácil de entender configurando títulos y etiquetas de ejes.

5.5 Mapa geográfico

Un gráfico geográfico es un tipo de gráfico que se utiliza para mostrar datos geográficos, como un mapa.existirbqploten, se puede utilizarplt.geo Función para crear mapas geográficos. Aquí hay un ejemplo:

import bqplot.pyplot as plt

# 加载地理数据
map_data = 'World'

# 创建地理图
fig = plt.figure()
geo = plt.geo(map_data)
plt.title('Geographical Map')

fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

En este ejemplo, cargamos los datos del mapa mundial y luego usamosplt.geo La función crea un mapa geográfico. Al establecer un título, puede hacer que su gráfico sea más claro y fácil de entender.

Funciones interactivas

6.1 Descripción general de los componentes interactivos

En la visualización de datos, las funciones interactivas son clave para mejorar la experiencia del usuario y las capacidades de exploración de datos.bqplot Proporciona componentes interactivos enriquecidos para permitir a los usuarios realizar una exploración de datos dinámica y receptiva en Jupyter Notebook. Estos componentes interactivos incluyen, entre otros:

  • Zoom y panorámica: permite al usuario acercar o alejar el gráfico, así como desplazarse por el gráfico para ver diferentes áreas de datos.
  • Selecciona y desliza: permite a los usuarios seleccionar puntos o áreas de datos específicos en un gráfico para su posterior análisis.
  • información sobre herramientas: muestra información detallada cuando el mouse pasa sobre un punto de datos.
  • Actualizaciones dinámicas: permite que los gráficos se actualicen dinámicamente según la entrada del usuario o los cambios de datos.

Estos componentes interactivos son bqplot deInteractions La implementación del módulo proporciona a los usuarios herramientas de exploración de datos potentes e intuitivas.

6.2 Uso de componentes interactivos comunes

Zoom y panorámica

El zoom y la panorámica son las funciones interactivas más básicas en la visualización de datos.bqplot Proporciona funciones integradas de zoom y desplazamiento, los usuarios pueden hacer zoom con la rueda del mouse y desplazarse arrastrando el mouse. He aquí un ejemplo sencillo:

import bqplot.pyplot as plt
import numpy as np

# 创建数据
x = np.linspace(-10, 10, 100)
y = np.sin(x)

# 创建图表
fig = plt.figure(title="Zoom and Pan Example")
plt.plot(x, y)
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

En este ejemplo, el usuario puede acercar o alejar el gráfico usando la rueda del mouse y desplazarse por el gráfico arrastrando el mouse.

Selecciona y desliza

Las capacidades de selección y pincel permiten a los usuarios seleccionar puntos o áreas de datos específicos dentro de un gráfico para su posterior análisis.bqplot proporcionóBrushSelector yLassoSelector componentes para implementar esta funcionalidad.El siguiente es un uso.BrushSelector Ejemplo:

from bqplot import BrushSelector

# 创建选择器
brush = BrushSelector(x_scale=x_scale, y_scale=y_scale)

# 将选择器添加到图表
fig.interaction = brush
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

En este ejemplo, el usuario puede seleccionar un área rectangular en el gráfico arrastrando el mouse y los puntos de datos seleccionados se resaltarán.

información sobre herramientas

La información sobre herramientas puede mostrar información detallada cuando el usuario pasa el mouse sobre un punto de datos.bqplot proporcionóTooltip componente para lograr esta funcionalidad. He aquí un ejemplo sencillo:

from bqplot import Tooltip

# 创建工具提示
tooltip = Tooltip(fields=['x', 'y'], formats=['.2f', '.2f'])

# 将工具提示添加到图表
scatter.tooltip = tooltip
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

En este ejemplo, cuando el usuario pasa el cursor sobre un punto de datos del gráfico de dispersión, el x yy valor.

Actualizaciones dinámicas

La función de actualización dinámica permite que los gráficos se actualicen dinámicamente según la entrada del usuario o los cambios de datos.bqplot proporcionóinteracts módulo para implementar esta funcionalidad. He aquí un ejemplo sencillo:

from ipywidgets import IntSlider

# 创建滑块
slider = IntSlider(value=50, min=0, max=100, step=1)

# 定义更新函数
def update_plot(change):
    new_value = change['new']
    scatter.x = np.linspace(0, new_value, 100)

# 绑定滑块到更新函数
slider.observe(update_plot, names='value')

# 显示滑块和图表
slider
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

En este ejemplo, el usuario puede actualizar dinámicamente los datos del gráfico ajustando el valor del control deslizante.

Funciones y aplicaciones avanzadas

7.1 Panel interactivo

Los paneles interactivos son una aplicación importante en la visualización de datos, que permiten a los usuarios explorar datos dinámicamente a través de componentes interactivos para obtener una comprensión más profunda de la información detrás de los datos. bqplot proporciona funciones potentes para crear paneles interactivos. Aquí hay un ejemplo simple que muestra cómo crear un panel que contiene múltiples gráficos y componentes interactivos.

Para crear un panel interactivo
  1. Importar bibliotecas necesarias

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. preparar datos

    x = np.arange(100)
    y = np.random.randn(100).cumsum()
    
    • 1
    • 2
  3. Crear un componente de gráfico

    line_chart = plt.plot(x, y, 'Line Chart')
    bar_chart = plt.bar(x, y, 'Bar Chart')
    
    • 1
    • 2
  4. Crear componentes interactivos

    dropdown = widgets.Dropdown(
        options=['Line Chart', 'Bar Chart'],
        value='Line Chart',
        description='Chart Type:'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
  5. Definir la lógica de interacción

    def on_change(change):
        if change['new'] == 'Line Chart':
            plt.clear()
            plt.plot(x, y, 'Line Chart')
        elif change['new'] == 'Bar Chart':
            plt.clear()
            plt.bar(x, y, 'Bar Chart')
    
    dropdown.observe(on_change, names='value')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  6. Componentes compuestos

    dashboard = widgets.VBox([dropdown, plt.figure])
    display(dashboard)
    
    • 1
    • 2

A través de los pasos anteriores, podemos crear un panel interactivo simple donde los usuarios pueden seleccionar diferentes tipos de gráficos a través del menú desplegable para lograr una visualización dinámica de datos.

7.2 Selectores de datos (Selectores)

Los selectores de datos son componentes importantes en bqplot para el filtrado y la interacción de datos. A través del selector de datos, los usuarios pueden seleccionar y operar datos directamente en el gráfico para lograr un análisis de datos más refinado.

Ejemplo de uso del selector de datos
  1. Importar bibliotecas necesarias

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. preparar datos

    x = np.arange(100)
    y = np.random.randn(100).cumsum()
    
    • 1
    • 2
  3. Crear gráfico

    scatter_chart = plt.scatter(x, y, 'Scatter Chart')
    
    • 1
  4. Crear selector de datos

    selector = bq.interacts.BrushSelector(x_scale=scatter_chart.scales['x'], y_scale=scatter_chart.scales['y'])
    scatter_chart.interaction = selector
    
    • 1
    • 2
  5. Definir la lógica de selección

    def on_selection(change):
        selected_data = scatter_chart.selected
        print(f"Selected Data: {selected_data}")
    
    selector.observe(on_selection, names='selected')
    
    • 1
    • 2
    • 3
    • 4
    • 5
  6. Mostrar gráfico

    display(plt.figure)
    
    • 1

A través de los pasos anteriores, podemos crear un selector de datos en el gráfico de dispersión. El usuario puede seleccionar puntos de datos arrastrando el mouse y generar los datos seleccionados en la consola.

7.3 Aplicaciones avanzadas de proyección y mapa.

bqplot no solo admite gráficos 2D básicos, sino que también proporciona potentes funciones de gráficos geográficos que se pueden utilizar para crear varias proyecciones de mapas y gráficos geográficos avanzados.

Ejemplo de creación de un mapa geográfico.
  1. Importar bibliotecas necesarias

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. Preparar datos geográficos.

    import json
    with open('world.json') as f:
        world_data = json.load(f)
    
    • 1
    • 2
    • 3
  3. Crear un mapa geográfico

    map_chart = bq.Map(
        map_data=bq.topo_load('world.json'),
        scales={'projection': bq.AlbersUSA()}
    )
    
    • 1
    • 2
    • 3
    • 4
  4. Crear componentes interactivos

    dropdown = widgets.Dropdown(
        options=['AlbersUSA', 'Mercator', 'Orthographic'],
        value='AlbersUSA',
        description='Projection:'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
  5. Definir la lógica de interacción

    def on_change(change):
        if change['new'] == 'AlbersUSA':
            map_chart.scales['projection'] = bq.AlbersUSA()
        elif change['new'] == 'Mercator':
            map_chart.scales['projection'] = bq.Mercator()
        elif change['new'] == 'Orthographic':
            map_chart.scales['projection'] = bq.Orthographic()
    
    dropdown.observe(on_change, names='value')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  6. Componentes compuestos

    map_dashboard = widgets.VBox([dropdown, map_chart])
    display(map_dashboard)
    
    • 1
    • 2

A través de los pasos anteriores, podemos crear un mapa geográfico que admita múltiples proyecciones de mapas. Los usuarios pueden seleccionar diferentes métodos de proyección a través del menú desplegable para lograr una visualización dinámica del mapa.

A través de estas funciones y aplicaciones avanzadas, bqplot proporciona a los usuarios potentes herramientas de visualización de datos, lo que hace que el análisis de datos interactivo en Jupyter Notebook sea más conveniente y eficiente.

Documentación API

8.1 Diagrama de diagrama

bqplot proporciona algo comomatplotlib depyplot API permite a los usuarios crear y mostrar gráficos rápidamente.Los siguientes son algunos de uso común.pyplot Funciones y ejemplos:

  • figure(): crea un nuevo gráfico.
  • plot(): Dibuja un gráfico de líneas.
  • scatter(): Dibuja un diagrama de dispersión.
  • bar(): Dibuja un gráfico de barras.
  • pie(): Dibuja un gráfico circular.
  • hist(): dibuja un histograma.

Código de muestra:

from bqplot import pyplot as plt
import numpy as np

# 创建数据
x = np.arange(10)
y = x ** 2

# 创建图形
fig = plt.figure()

# 绘制折线图
plt.plot(x, y)

# 显示图形
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

8.2 Modelo de objetos

bqplot El modelo de objetos se basa en Gramática de gráficos, lo que proporciona una forma más flexible y detallada de personalizar gráficos. A continuación se muestran algunos objetos principales y ejemplos:

  • Figure: Contenedor del gráfico, que contiene todos los marcadores y ejes.
  • Mark: Elementos gráficos específicos, como líneas, puntos, barras, etc.
  • Axis: Eje.
  • Scale: Mapeo de datos a gráficos.

Código de muestra:

from bqplot import Figure, Axis, Scale, Lines
import numpy as np

# 创建数据
x = np.arange(10)
y = x ** 2

# 创建比例尺
x_scale = Scale(min=0, max=10)
y_scale = Scale(min=0, max=100)

# 创建轴
x_axis = Axis(scale=x_scale, label='X Axis')
y_axis = Axis(scale=y_scale, label='Y Axis', orientation='vertical')

# 创建标记
line = Lines(x=x, y=y, scales={'x': x_scale, 'y': y_scale})

# 创建图形
fig = Figure(marks=[line], axes=[x_axis, y_axis])

# 显示图形
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

8.3 Información sobre herramientas y barras de herramientas

bqplot Proporciona información sobre herramientas enriquecida y funciones de barra de herramientas, lo que permite a los usuarios interactuar con gráficos de manera más conveniente.

  • Tooltip: Muestra información de datos cuando se pasa el mouse.
  • Toolbar: Proporciona funciones interactivas como zoom y panorámica.

Código de muestra:

from bqplot import Tooltip, Toolbar

# 创建工具提示
tooltip = Tooltip(fields=['x', 'y'], formats=['.2f', '.2f'])

# 创建工具栏
toolbar = Toolbar(figure=fig)

# 添加到图形
line.tooltip = tooltip
fig.toolbar = toolbar

# 显示图形
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

8.4 Interacción y mapa de mercado

bqplot Admite funciones interactivas complejas como selección, zoom, panorámica, etc. también,bqplot También se puede utilizar para crear visualizaciones avanzadas, como mapas de mercado.

Código de muestra:

from bqplot import MarketMap
import pandas as pd

# 创建数据
data = pd.DataFrame({
    'label': ['A', 'B', 'C', 'D'],
    'values': [100, 200, 150, 300],
    'color': ['red', 'green', 'blue', 'yellow']
})

# 创建市场地图
market_map = MarketMap(names=data['label'], values=data['values'], colors=data['color'])

# 创建图形
fig = Figure(marks=[market_map])

# 显示图形
fig
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

A través de la introducción de los documentos API anteriores, los usuarios pueden comprender y utilizar mejor bqplot biblioteca para crear visualizaciones de datos ricas e interactivas.

Guías y contribuciones de migración

9.1 Guía de migración

Existen algunos desafíos que puede encontrar al migrar proyectos existentes desde otras bibliotecas de visualización de datos como Matplotlib o Plotly a bqplot. A continuación se detallan algunos pasos y consideraciones clave que lo ayudarán a navegar el proceso de migración.

9.1.1 Comprender los conceptos básicos de bqplot

Antes de comenzar la migración, primero debe comprender los conceptos básicos de bqplot, que incluyen:

  • Escamas: Defina el método de mapeo de datos, como escala lineal, escala logarítmica, etc.
  • Marcas: Representa elementos visuales en gráficos, como puntos de dispersión, líneas, barras, etc.
  • ejes: define el eje de coordenadas del gráfico.
  • Interacciones: define cómo interactúan los usuarios con el gráfico.
9.1.2 Preparación de datos

Asegúrese de que sus datos estén listos y puedan convertirse fácilmente al formato requerido por bqplot. Normalmente, los datos se pueden almacenar en un Pandas DataFrame, lo que permite una fácil manipulación y visualización de los datos.

9.1.3 Migración gradual
  1. Importar bibliotecas necesarias

    import bqplot as bq
    import pandas as pd
    import numpy as np
    
    • 1
    • 2
    • 3
  2. Crear escalas y ejes.

    x_sc = bq.LinearScale()
    y_sc = bq.LinearScale()
    ax_x = bq.Axis(scale=x_sc, label='X Axis')
    ax_y = bq.Axis(scale=y_sc, label='Y Axis', orientation='vertical')
    
    • 1
    • 2
    • 3
    • 4
  3. Crear etiqueta

    data = pd.DataFrame(np.random.randn(100, 2), columns=['X', 'Y'])
    scatter = bq.Scatter(x=data['X'], y=data['Y'], scales={'x': x_sc, 'y': y_sc})
    
    • 1
    • 2
  4. Crear gráfico

    fig = bq.Figure(axes=[ax_x, ax_y], marks=[scatter])
    
    • 1
  5. Mostrar gráfico

    display(fig)
    
    • 1
9.1.4 Manejo de interacciones

bqplot proporciona funciones interactivas ricas, que se pueden lograr estableciendo diferentes propiedades. Por ejemplo, para habilitar la funcionalidad de zoom y panorámica:

scatter.enable_move = True
scatter.enable_zoom = True
  • 1
  • 2
9.1.5 Estilos personalizados

bqplot le permite personalizar el estilo de su gráfico, incluido el color, el estilo del marcador, el estilo de línea, etc. Por ejemplo, para personalizar la apariencia de un diagrama de dispersión:

scatter = bq.Scatter(x=data['X'], y=data['Y'], scales={'x': x_sc, 'y': y_sc}, colors=['blue'], default_size=20, marker='triangle-up', stroke='black')
  • 1

9.2 Directrices de contribución

bqplot es un proyecto de código abierto y los miembros de la comunidad pueden contribuir con código, documentación y ejemplos. Aquí hay algunas pautas de contribución que lo ayudarán a comenzar a contribuir al proyecto bqplot.

9.2.1 Configurar el entorno de desarrollo
  1. Repositorio de clones

    git clone https://github.com/bqplot/bqplot.git
    cd bqplot
    
    • 1
    • 2
  2. Instalar dependencias

    pip install -r requirements.txt
    
    • 1
  3. Instalar la versión de desarrollo

    pip install -e .
    
    • 1
9.2.2 Escribir código

Al contribuir con código, siga estas pautas:

  • estilo de codificación:Sigue la guía de estilo PEP 8.
  • documento: agregue documentación para nuevas funciones o modificaciones.
  • prueba:Escriba pruebas unitarias para garantizar la exactitud del código.
9.2.3 Enviar PR
  1. crear una sucursal

    git checkout -b my-new-feature
    
    • 1
  2. Cometer cambios

    git add .
    git commit -m "Add some feature"
    
    • 1
    • 2
  3. empujar rama

    git push origin my-new-feature
    
    • 1
  4. Crear solicitud de extracción
    Cree una nueva solicitud de extracción en GitHub que describa sus cambios y motivación.

9.2.4 Participar en la comunidad
  • Participar en discusiones: Únase a la sala de chat Gitter de bqplot o al foro de discusión de GitHub para comunicarse con otros desarrolladores.
  • Informar de un problema: Si encuentra algún problema o error, envíe un problema en GitHub.
  • Suministre realimentación: Proporcione comentarios sobre nuevas funciones o mejoras para ayudar a que el proyecto se desarrolle mejor.

Si sigue estas pautas, puede hacer una valiosa contribución al proyecto bqplot y ayudar a avanzar en la visualización interactiva de datos en la comunidad Python.

Resumen y perspectivas

10.1 Ventajas y limitaciones de bqplot

Ventaja

diagrama bq es una base enGramática de los gráficos Sistema de visualización 2D, diseñado paraCuaderno Jupyter diseño. Tiene las siguientes ventajas significativas:

  1. interactividad: Cada componente de bqplot es un widget interactivo, que permite a los usuarios integrar fácilmente visualizaciones con otros widgets interactivos de Jupyter para crear interfaces gráficas de usuario (GUI) complejas.
  2. Facilidad de uso: A través de un código Python simple, los usuarios pueden crear y personalizar rápidamente varios gráficos sin tener que comprender en profundidad la programación de gráficos compleja.
  3. flexibilidad: Admite una variedad de tipos de gráficos, incluidos gráficos de dispersión, gráficos circulares, diagramas de caja, gráficos de barras, etc., para satisfacer diferentes necesidades de visualización de datos.
  4. Integración: Perfectamente integrado con el ecosistema Jupyter, lo que facilita su uso por parte de los científicos y analistas de datos en el proceso de análisis de datos.
limitaciones

Aunque bqplot proporciona una potente funcionalidad y flexibilidad, también tiene algunas limitaciones:

  1. actuación: Para conjuntos de datos a gran escala, el rendimiento de bqplot puede no ser tan bueno como el de algunas herramientas de visualización profesionales, especialmente cuando se trata de gráficos complejos y grandes cantidades de datos.
  2. curva de aprendizaje: Aunque es relativamente fácil comenzar con bqplot, a los principiantes todavía les lleva algo de tiempo familiarizarse con su API y sus componentes interactivos.
  3. soporte comunitario: En comparación con algunas bibliotecas de visualización maduras, bqplot tiene una comunidad más pequeña, lo que puede resultar en recursos limitados de ayuda cuando se encuentran problemas.

10.2 Tendencias de desarrollo futuras

Como proyecto activo de código abierto, las futuras tendencias de desarrollo de bqplot merecen atención:

  1. Optimización del rendimiento: Con el desarrollo de la tecnología, se espera que bqplot obtenga mejoras significativas en el rendimiento y maneje mejor conjuntos de datos a gran escala y gráficos complejos.
  2. Integración de nuevas funciones: Las versiones futuras pueden introducir tipos de gráficos más avanzados y funciones interactivas, como visualización 3D, soporte de animación, etc.
  3. crecimiento comunitario: A medida que la popularidad y el alcance de las aplicaciones de bqplot se expandan, se espera que su comunidad continúe creciendo y atraiga a más desarrolladores y usuarios para participar.
  4. Soporte multiplataforma: Además de Jupyter Notebook, bqplot se puede extender a otras plataformas y entornos para proporcionar una gama más amplia de escenarios de aplicaciones.

En resumen, bqplot, como poderosa herramienta interactiva de visualización de datos, tiene amplias perspectivas de aplicación en el campo de la ciencia de datos. Con una optimización continua y una expansión de funciones, seguirá brindando más posibilidades para el análisis y la visualización de datos.