Обмен технологиями

Учебное пособие по bqplot: интерактивная визуализация данных в Jupyter Notebook

2024-07-12

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

Каталог статей

представлять

1.1 Важность визуализации данных

Визуализация данных заключается в отображении данных в виде графики, чтобы помочь людям более интуитивно и быстро понять информацию и закономерности, лежащие в основе данных. В сегодняшнюю эпоху информационного взрыва визуализация данных особенно важна по следующим причинам:

  • Повышение эффективности понимания : Графические данные мозгу легче понять и запомнить, чем простой текст или числа. С помощью диаграмм люди могут быстро фиксировать ключевые моменты данных и принимать более обоснованные решения.
  • Выявление закономерностей данных : Визуализация данных может помочь обнаружить скрытые закономерности, тенденции и отклонения в ваших данных. Например, на линейном графике можно четко увидеть, как данные изменяются с течением времени.
  • Усилить эффект общения : В таких областях, как бизнес, научные исследования и образование, визуализация данных является мощным инструментом для передачи сложной информации. Это облегчает понимание и принятие другими результатов анализа данных.
  • Поддержка принятия решений: Визуализация данных предоставляет лицам, принимающим решения, интуитивно понятную поддержку данных, помогая им находить ключевую информацию в сложных данных и принимать более научные и разумные решения.

1.2 Обзор библиотеки bqplot

bqplot основан наГрамматика графики Библиотека 2D-визуализации, специально дляБлокнот Jupyter дизайн.он сочетает в себеd3.js иipywidgets функция, предназначенная для реализации мощных возможностей визуализации d3.js в Python. Вот некоторые ключевые особенности библиотеки bqplot:

  • интерактивность: bqplot предоставляет богатые интерактивные функции. Пользователи могут перемещать, масштабировать, выбирать и выполнять другие операции на диаграмме для более глубокого изучения данных.
  • гибкость: Используя объектно-ориентированный подход, пользователи могут создавать высоко персонализированные диаграммы с помощью Grammar of Graphics.
  • Простота использования: bqplot предоставляет интерфейс pyplot, аналогичный matplotlib, что позволяет пользователям, знакомым с matplotlib, быстро приступить к работе.
  • Интеграция: Как встроенная библиотека Jupyter Notebook, bqplot может быть легко интегрирован в рабочий процесс анализа данных, предоставляя пользователям удобство интерактивного взаимодействия.
Установка и быстрый запуск

Установить bqplot очень просто: просто запустите следующую команду в терминале или командной строке:

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

После успешной установки импортируйте необходимые библиотеки в Jupyter Notebook, чтобы начать использовать:

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

Вот простой пример, показывающий, как создать гистограмму с помощью 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

На этом простом примере вы можете убедиться в простоте использования и мощных интерактивных функциях bqplot. В следующих главах мы углубимся в различные типы диаграмм и расширенные функции bqplot.

Установить и импортировать

2.1 Установите bqplot

Прежде чем вы начнете использовать bqplot для визуализации данных, вам сначала необходимо установить библиотеку bqplot в вашей среде. bqplot можно установить разными способами, чаще всего с помощью pip или conda. Вот подробные инструкции по использованию обоих методов:

Установить с помощью pip
pip install bqplot
  • 1
Установить с помощью Конды
conda install -c conda-forge bqplot
  • 1

После завершения установки вы можете подтвердить успешность установки, выполнив следующую команду:

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

2.2 Импортируйте необходимые библиотеки

После установки bqplot вам необходимо импортировать необходимые библиотеки, чтобы начать работу по визуализации данных. Обычно вам необходимо импортировать следующие библиотеки:

  • bqplot: используется для создания интерактивных диаграмм.
  • numpy: используется для численных расчетов и обработки данных.
  • pandas: используется для манипулирования и анализа данных.

Вот пример кода для импорта этих библиотек:

import bqplot.pyplot as plt
import numpy as np
import pandas as pd
  • 1
  • 2
  • 3
Пример. Импортируйте и используйте bqplot для создания простой диаграммы.

Чтобы убедиться, что все настроено правильно, вы можете попробовать создать простую гистограмму. Вот пример кода, показывающий, как импортировать необходимые библиотеки и создать простую гистограмму:

# 导入必要的库
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

В этом примере мы сначала импортируемbqplot.pyplotкакplt, затем используйтеnumpy Генерация случайных данных. Затем мы создали простую гистограмму с пятью столбцами и отобразили ее в блокноте Jupyter.

Выполнив описанные выше шаги, вы успешно установили и импортировали библиотеку bqplot и создали свою первую простую интерактивную диаграмму. Далее вы можете продолжить изучение более продвинутых функций и типов диаграмм.

Подготовка набора данных

3.1 Импорт набора данных

Прежде чем начать использовать bqplot Прежде чем вы сможете выполнить визуализацию данных, вам сначала необходимо импортировать необходимый набор данных.Вот некоторые распространенные методы импорта набора данных и способы их использования.pandas библиотека для обработки этих данных.

Импортируйте файлы CSV с помощью панд

pandas Это мощная библиотека обработки данных, которая широко используется для анализа и предварительной обработки данных.Вот как использоватьpandas Пример импорта файла CSV:

import pandas as pd

# 导入CSV文件
df1 = pd.read_csv("../input/autompg-dataset/auto-mpg.csv")
  • 1
  • 2
  • 3
  • 4
Используйте pandas для импорта данных в других форматах

Помимо файлов CSV,pandas Он также поддерживает импорт данных в нескольких форматах, таких как файлы Excel, файлы JSON и т. д. Вот некоторые примеры:

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

# 导入JSON文件
df_json = pd.read_json("../input/dataset.json")
  • 1
  • 2
  • 3
  • 4
  • 5
Используйте pandas для импорта данных из базы данных

Если данные хранятся в базе данных, вы можете использовать pandas изread_sql функция импорта данных. Вот пример:

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 Предварительный просмотр набора данных

После импорта набора данных обычно необходимо просмотреть набор данных, чтобы понять структуру и содержание данных.pandas Для предварительного просмотра набора данных предусмотрены различные методы.

Просмотрите первые несколько строк набора данных

использовать head() Метод просмотра первых нескольких строк набора данных:

# 查看前5行数据
print(df1.head())
  • 1
  • 2
Просмотр основной информации о наборе данных

использовать info() Метод может просматривать основную информацию о наборе данных, включая тип данных и недостающие значения:

# 查看数据集的基本信息
print(df1.info())
  • 1
  • 2
Просмотр статистики для набора данных

использовать describe() Метод может просматривать статистическую информацию набора данных, включая среднее значение, стандартное отклонение, минимальное значение, максимальное значение и т. д.:

# 查看数据集的统计信息
print(df1.describe())
  • 1
  • 2
Просмотр имен столбцов набора данных

использовать columns Свойства могут просматривать имена столбцов набора данных:

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

С помощью вышеуказанных методов вы можете получить базовое представление об импортированном наборе данных, тем самым заложив основу для последующей работы по визуализации данных.

{
  "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

Основные типы диаграмм

4.1 График рассеяния

Диаграмма рассеяния — это диаграмма, используемая для отображения взаимосвязи между двумя переменными. Диаграммы рассеяния позволяют визуально наблюдать за распределением и корреляцией данных. В bqplot создавать точечные диаграммы очень просто.

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 Круговая диаграмма

Круговая диаграмма — это диаграмма, используемая для отображения доли данных. В bqplot создавать круговые диаграммы одинаково просто.

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 Коробчатый график

Ящичковая диаграмма — это диаграмма, используемая для отображения распределения данных. Он может отображать медиану, квартили и выбросы данных.

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 Гистограмма

Гистограмма — это диаграмма, используемая для отображения сравнения категориальных данных. Высота каждой полосы представляет значение данных для этой категории.

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 Гистограмма с накоплением

Столбчатая диаграмма с накоплением — это диаграмма, используемая для отображения сравнения нескольких категориальных данных. Высота каждого столбца представляет значение данных для этой категории, и каждый столбец можно разделить на сегменты, каждый сегмент представляет подкатегорию.

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

Расширенные типы диаграмм

5.1 Гистограмма

Гистограмма — это тип диаграммы, используемый для отображения распределения данных.существоватьbqplotв, можно использоватьplt.hist функция создания гистограммы. Вот простой пример:

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

В этом примере мы сначала сгенерировали 1000 случайных точек данных, а затем использовалиplt.hist Функция создает гистограмму с 30 ячейками. Вы можете сделать диаграмму более четкой и понятной, установив заголовки и метки осей.

5.2 Линейный график

Линейные диаграммы — это распространенный тип диаграмм, используемый для отображения тенденций данных во времени или других непрерывных переменных.существоватьbqplotв, можно использоватьplt.plot функция для создания линейного графика. Вот пример:

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

В этом примере мы сгенерировали данные синусоидальной функции со 100 точками данных, а затем использовалиplt.plot Функция создает линейный график. Вы можете сделать диаграмму более четкой и понятной, установив заголовки и метки осей.

5.3 Свечной график

Свечные диаграммы (также известные как свечные диаграммы) — это тип диаграмм, используемый для отображения финансовых данных, таких как цены на акции.существоватьbqplotв, можно использоватьplt.candle функция для создания свечных графиков. Вот пример:

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

В этом примере мы генерируем случайные данные о ценах открытия, максимума, минимума и закрытия, а затем используемplt.candle Функция создает свечной график. Вы можете сделать диаграмму более четкой и понятной, установив заголовки и метки осей.

5.4 Тепловая карта

Тепловая карта — это тип диаграммы, используемый для отображения распределения плотности или интенсивности двумерных данных.существоватьbqplotв, можно использоватьplt.heatmap Функция создания тепловой карты. Вот пример:

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

В этом примере мы создали матрицу случайных данных размером 10x10, а затем использовалиplt.heatmap Функция создает тепловую карту. Вы можете сделать диаграмму более четкой и понятной, установив заголовки и метки осей.

5.5 Географическая карта

Географическая диаграмма — это тип диаграммы, используемый для отображения географических данных, например карты.существоватьbqplotв, можно использоватьplt.geo функция создания географических карт. Вот пример:

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

В этом примере мы загружаем данные карты мира, а затем используемplt.geo Функция создает географическую карту. Установив заголовок, вы можете сделать диаграмму более четкой и легкой для понимания.

интерактивные функции

6.1 Обзор интерактивных компонентов

В визуализации данных интерактивные функции играют ключевую роль в улучшении пользовательского опыта и возможностей исследования данных.bqplot Предоставляет богатые интерактивные компоненты, позволяющие пользователям проводить динамическое и оперативное исследование данных в Jupyter Notebook. Эти интерактивные компоненты включают, помимо прочего:

  • Масштабирование и панорамирование: позволяет пользователю увеличивать или уменьшать масштаб диаграммы, а также перемещаться по диаграмме для просмотра различных областей данных.
  • Выберите и проведите пальцем: позволяет пользователям выбирать определенные точки данных или области на диаграмме для дальнейшего анализа.
  • подсказка: отображение подробной информации при наведении курсора мыши на точку данных.
  • Динамические обновления: позволяет диаграммам динамически обновляться на основе ввода данных пользователем или изменений данных.

Эти интерактивные компоненты bqplot изInteractions Реализация модуля предоставляет пользователям интуитивно понятные и мощные инструменты исследования данных.

6.2 Использование общих интерактивных компонентов

Масштабирование и панорамирование

Масштабирование и панорамирование — самые основные интерактивные функции визуализации данных.bqplot Предоставляет встроенные функции масштабирования и панорамирования. Пользователи могут масштабировать изображение с помощью колеса мыши и панорамировать с помощью перетаскивания мыши. Вот простой пример:

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

В этом примере пользователь может увеличивать или уменьшать масштаб диаграммы с помощью колеса мыши и перемещать диаграмму, перетаскивая мышь.

Выберите и проведите пальцем

Возможности выбора и выбора кисти позволяют пользователям выбирать определенные точки данных или области на диаграмме для дальнейшего анализа.bqplot предоставилBrushSelector иLassoSelector компоненты для реализации этой функциональности.Ниже приводится использованиеBrushSelector Пример:

from bqplot import BrushSelector

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

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

В этом примере пользователь может выбрать прямоугольную область на диаграмме, перетаскивая мышь, и выбранные точки данных будут выделены.

подсказка

Подсказки могут отображать подробную информацию, когда пользователь наводит указатель мыши на точку данных.bqplot предоставилTooltip компонент для достижения этой функциональности. Вот простой пример:

from bqplot import Tooltip

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

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

В этом примере, когда пользователь наводит курсор на точку данных точечной диаграммы, x иy ценить.

Динамические обновления

Функция динамического обновления позволяет динамически обновлять диаграммы на основе ввода данных пользователем или изменений данных.bqplot предоставилinteracts модуль для реализации этой функциональности. Вот простой пример:

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

В этом примере пользователь может динамически обновлять данные на диаграмме, регулируя значение ползунка.

Расширенные функции и приложения

7.1 Интерактивная панель управления

Интерактивные информационные панели — это важное приложение для визуализации данных, которое позволяет пользователям динамически исследовать данные с помощью интерактивных компонентов, чтобы получить более глубокое понимание информации, лежащей в основе данных. bqplot предоставляет мощные функции для создания интерактивных информационных панелей. Вот простой пример, показывающий, как создать информационную панель, содержащую несколько диаграмм и интерактивных компонентов.

Чтобы создать интерактивную панель мониторинга
  1. Импортируйте необходимые библиотеки

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. Подготовьте данные

    x = np.arange(100)
    y = np.random.randn(100).cumsum()
    
    • 1
    • 2
  3. Создание компонента диаграммы

    line_chart = plt.plot(x, y, 'Line Chart')
    bar_chart = plt.bar(x, y, 'Bar Chart')
    
    • 1
    • 2
  4. Создавайте интерактивные компоненты

    dropdown = widgets.Dropdown(
        options=['Line Chart', 'Bar Chart'],
        value='Line Chart',
        description='Chart Type:'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
  5. Определить логику взаимодействия

    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. Композитные компоненты

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

С помощью описанных выше шагов мы можем создать простую интерактивную панель мониторинга, где пользователи могут выбирать различные типы диаграмм в раскрывающемся меню для достижения динамической визуализации данных.

7.2 Селекторы данных (селекторы)

Селекторы данных — важные компоненты bqplot для фильтрации и взаимодействия данных. С помощью селектора данных пользователи могут выбирать и управлять данными непосредственно на диаграмме для более точного анализа данных.

Пример использования селектора данных
  1. Импортируйте необходимые библиотеки

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. Подготовьте данные

    x = np.arange(100)
    y = np.random.randn(100).cumsum()
    
    • 1
    • 2
  3. Создать диаграмму

    scatter_chart = plt.scatter(x, y, 'Scatter Chart')
    
    • 1
  4. Создать селектор данных

    selector = bq.interacts.BrushSelector(x_scale=scatter_chart.scales['x'], y_scale=scatter_chart.scales['y'])
    scatter_chart.interaction = selector
    
    • 1
    • 2
  5. Определить логику выбора

    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. Показать диаграмму

    display(plt.figure)
    
    • 1

С помощью описанных выше шагов мы можем создать селектор данных на диаграмме рассеяния. Пользователь может выбирать точки данных, перетаскивая мышь, и выводить выбранные данные в консоль.

7.3 Расширенные применения проекции и карты

bqplot не только поддерживает базовые 2D-диаграммы, но также предоставляет мощные функции географических карт, которые можно использовать для создания различных картографических проекций и расширенных географических карт.

Пример создания географической карты
  1. Импортируйте необходимые библиотеки

    import bqplot as bq
    import ipywidgets as widgets
    from bqplot import pyplot as plt
    import numpy as np
    
    • 1
    • 2
    • 3
    • 4
  2. Подготовьте географические данные

    import json
    with open('world.json') as f:
        world_data = json.load(f)
    
    • 1
    • 2
    • 3
  3. Создать географическую карту

    map_chart = bq.Map(
        map_data=bq.topo_load('world.json'),
        scales={'projection': bq.AlbersUSA()}
    )
    
    • 1
    • 2
    • 3
    • 4
  4. Создавайте интерактивные компоненты

    dropdown = widgets.Dropdown(
        options=['AlbersUSA', 'Mercator', 'Orthographic'],
        value='AlbersUSA',
        description='Projection:'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
  5. Определить логику взаимодействия

    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. Композитные компоненты

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

С помощью описанных выше шагов мы можем создать географическую карту, поддерживающую несколько картографических проекций. Пользователи могут выбирать различные методы проекции в раскрывающемся меню для достижения динамического отображения карты.

Благодаря этим расширенным функциям и приложениям bqplot предоставляет пользователям мощные инструменты визуализации данных, делая интерактивный анализ данных в Jupyter Notebook более удобным и эффективным.

Документация по API

8.1 Пиплот

bqplot предоставляет что-то вродеmatplotlib изpyplot API позволяет пользователям быстро создавать и отображать диаграммы.Ниже приведены некоторые часто используемыеpyplot Функции и примеры:

  • figure(): Создать новую графику.
  • plot(): Нарисуйте линейную диаграмму.
  • scatter(): Нарисуйте точечную диаграмму.
  • bar(): нарисовать гистограмму.
  • pie(): Нарисуйте круговую диаграмму.
  • hist(): нарисовать гистограмму.

Образец кода:

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 Объектная модель

bqplot Объектная модель основана на Grammar of Graphics, что обеспечивает более гибкий и детальный способ настройки диаграмм. Вот некоторые основные объекты и примеры:

  • Figure: Контейнер графика, содержащий все маркеры и оси.
  • Mark: Определенные графические элементы, такие как линии, точки, полосы и т. д.
  • Axis: Ось.
  • Scale: Сопоставление данных с графиком.

Образец кода:

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 Подсказки и панели инструментов

bqplot Предоставляет обширные подсказки и функции панели инструментов, позволяющие пользователям более удобно взаимодействовать с графикой.

  • Tooltip: отображение информации о данных при наведении указателя мыши.
  • Toolbar: предоставляет интерактивные функции, такие как масштабирование и панорамирование.

Образец кода:

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 Взаимодействие и карта рынка

bqplot Поддерживает сложные интерактивные функции, такие как выбор, масштабирование, панорамирование и т. д. также,bqplot Его также можно использовать для создания расширенных визуализаций, таких как карты рынка.

Образец кода:

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

Благодаря представлению вышеуказанных документов API пользователи смогут лучше понимать и использовать bqplot библиотека для создания богатой интерактивной визуализации данных.

Руководства по миграции и материалы

9.1 Руководство по миграции

Существуют некоторые проблемы, с которыми вы можете столкнуться при переносе существующих проектов из других библиотек визуализации данных, таких как Matplotlib или Plotly, в bqplot. Ниже приведены некоторые ключевые шаги и рекомендации, которые помогут вам сориентироваться в процессе миграции.

9.1.1 Понимание основных концепций bqplot

Прежде чем начать миграцию, вам сначала необходимо понять основные концепции bqplot, в том числе:

  • Весы: Определите метод отображения данных, например, линейный масштаб, логарифмический масштаб и т. д.
  • Метки: представляет визуальные элементы на диаграммах, такие как точки разброса, линии, столбцы и т. д.
  • Топоры: определение оси координат диаграммы.
  • Взаимодействия: Определите, как пользователи взаимодействуют с диаграммой.
9.1.2 Подготовка данных

Убедитесь, что ваши данные готовы и их можно легко преобразовать в формат, требуемый bqplot. Обычно данные могут храниться в DataFrame Pandas, что позволяет легко манипулировать данными и визуализировать их.

9.1.3 Постепенная миграция
  1. Импортируйте необходимые библиотеки

    import bqplot as bq
    import pandas as pd
    import numpy as np
    
    • 1
    • 2
    • 3
  2. Создание масштабов и осей

    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. Создать тег

    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. Создать диаграмму

    fig = bq.Figure(axes=[ax_x, ax_y], marks=[scatter])
    
    • 1
  5. Показать диаграмму

    display(fig)
    
    • 1
9.1.4 Обработка взаимодействий

bqplot предоставляет богатые интерактивные функции, которых можно достичь, устанавливая различные свойства. Например, чтобы включить функции масштабирования и панорамирования:

scatter.enable_move = True
scatter.enable_zoom = True
  • 1
  • 2
9.1.5 Пользовательские стили

bqplot позволяет вам настроить стиль диаграммы, включая цвет, стиль маркера, стиль линии и т. д. Например, чтобы настроить внешний вид диаграммы рассеяния:

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 Рекомендации по внесению взносов

bqplot — это проект с открытым исходным кодом, и члены сообщества могут добавлять код, документацию и примеры. Вот несколько рекомендаций по участию, которые помогут вам начать вносить вклад в проект bqplot.

9.2.1 Настройка среды разработки
  1. Клонировать репозиторий

    git clone https://github.com/bqplot/bqplot.git
    cd bqplot
    
    • 1
    • 2
  2. Установить зависимости

    pip install -r requirements.txt
    
    • 1
  3. Установить версию для разработчиков

    pip install -e .
    
    • 1
9.2.2 Написание кода

При добавлении кода следуйте этим рекомендациям:

  • стиль кодирования: Следуйте руководству по стилю PEP 8.
  • документ: Добавьте документацию для новых функций или модификаций.
  • тест: Напишите модульные тесты, чтобы убедиться в корректности кода.
9.2.3 Отправка заявки на участие
  1. Создать ветку

    git checkout -b my-new-feature
    
    • 1
  2. Зафиксировать изменения

    git add .
    git commit -m "Add some feature"
    
    • 1
    • 2
  3. нажать ветку

    git push origin my-new-feature
    
    • 1
  4. Создать запрос на включение
    Создайте новый запрос на включение на GitHub, описывающий ваши изменения и мотивацию.

9.2.4 Участвуйте в сообществе
  • Участвуйте в обсуждениях: Присоединяйтесь к чату Gitter bqplot или дискуссионному форуму GitHub, чтобы общаться с другими разработчиками.
  • Сообщить о проблеме: Если вы обнаружите какие-либо проблемы или ошибки, отправьте сообщение о проблеме на GitHub.
  • Обеспечить обратную связь: оставляйте отзывы о новых функциях или улучшениях, чтобы помочь проекту лучше развиваться.

Следуя этим рекомендациям, вы сможете внести ценный вклад в проект bqplot и способствовать развитию интерактивной визуализации данных в сообществе Python.

Резюме и перспективы

10.1 Преимущества и ограничения bqplot

Преимущество

bqplot основан наГрамматика графики Система 2D визуализации, предназначенная дляБлокнот Jupyter дизайн. Он имеет следующие существенные преимущества:

  1. интерактивность: каждый компонент bqplot представляет собой интерактивный виджет, позволяющий пользователям легко интегрировать визуализации с другими интерактивными виджетами Jupyter для создания сложных графических пользовательских интерфейсов (GUI).
  2. Простота использования: с помощью простого кода Python пользователи могут быстро создавать и настраивать различные диаграммы без необходимости глубоко разбираться в сложном графическом программировании.
  3. гибкость: поддерживает различные типы диаграмм, включая точечные диаграммы, круговые диаграммы, коробчатые диаграммы, гистограммы и т. д., для удовлетворения различных потребностей в визуализации данных.
  4. Интеграция: Идеально интегрирован с экосистемой Jupyter, что упрощает использование данных учеными и аналитиками в процессе анализа данных.
ограничения

Хотя bqplot обеспечивает мощную функциональность и гибкость, он также имеет некоторые ограничения:

  1. производительность: Для крупномасштабных наборов данных производительность bqplot может быть не такой хорошей, как у некоторых профессиональных инструментов визуализации, особенно при работе со сложными диаграммами и большими объемами данных.
  2. кривая обучения: Хотя начать работу с bqplot относительно легко, новичкам все равно потребуется некоторое время, чтобы ознакомиться с его API и интерактивными компонентами.
  3. поддержка сообщества: По сравнению с некоторыми зрелыми библиотеками визуализации, у bqplot меньшее сообщество, что может привести к ограничению ресурсов для помощи при возникновении проблем.

10.2 Будущие тенденции развития

Поскольку bqplot является активным проектом с открытым исходным кодом, будущие тенденции развития bqplot заслуживают внимания:

  1. Оптимизация производительности: Ожидается, что с развитием технологий bqplot получит значительные улучшения в производительности и будет лучше обрабатывать крупномасштабные наборы данных и сложные диаграммы.
  2. Интеграция новых функций: в будущих версиях могут быть представлены более продвинутые типы диаграмм и интерактивные функции, такие как 3D-визуализация, поддержка анимации и т. д.
  3. рост сообщества: По мере расширения популярности и сферы применения bqplot его сообщество, как ожидается, будет продолжать расти и привлекать к участию все больше разработчиков и пользователей.
  4. Кроссплатформенная поддержка: Помимо Jupyter Notebook, bqplot можно распространить на другие платформы и среды, чтобы обеспечить более широкий спектр сценариев применения.

Короче говоря, bqplot, как мощный инструмент интерактивной визуализации данных, имеет широкие перспективы применения в области науки о данных. Благодаря постоянной оптимизации и расширению функций он будет продолжать предоставлять больше возможностей для анализа и визуализации данных.