Что такое Bqplot? Пример визуализации данных с помощью библиотеки Bqplot. Введение в пакет Bqplot в Python с примерами.

Bqplot — это библиотека для построения графиков Python, основанная на интерактивной библиотеке визуализации Plotly. Он предоставляет высокоуровневый API для создания интерактивных и настраиваемых визуализаций в блокнотах и ​​веб-приложениях Jupyter. Bqplot позволяет нам создавать богатые и интерактивные визуализации с помощью библиотеки Plotly.js.

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

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

История

Библиотека была первоначально разработана Bloomberg LP и впервые выпущена в 2016 году. Мотивация создания Bqplot заключалась в том, чтобы предоставить высокоуровневую библиотеку для построения графиков, которая использует возможности ноутбуков Jupyter и позволяет пользователям создавать интерактивные визуализации непосредственно в среде ноутбука. .

Bqplot был вдохновлен успехом и популярностью библиотеки D3.js, которая предоставляет мощные инструменты для создания визуализации данных в Интернете. Разработчики Bqplot стремились предоставить аналогичную интерактивность и гибкость пользователям Python, уделяя особое внимание интеграции с блокнотами Jupyter.

Библиотека построена на основе Plotly — широко используемой библиотеки с открытым исходным кодом для создания интерактивных визуализаций. Используя Plotly в качестве серверной части, Bqplot может создавать интерактивные визуализации, которые можно отображать и управлять ими непосредственно в блокнотах Jupyter.

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

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

Монтаж

Использование пипа:

pip install bqplot

Использование конды:

conda install -c conda-forge bqplot

Если вы используете JupyterLab ‹= 2:

jupyter labextension install @jupyter-widgets/jupyterlab-manager bqplot

Примеры графиков

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

import bqplot.pyplot as plt
import numpy as np

# create data vectors x and y to plot using a Lines mark
x = np.linspace(-10, 10, 100)
y = np.sin(x)

# 1. Create the figure object
fig = plt.figure(title="Line Chart")

# 2. By default axes are created with basic defaults. If you want to customize the axes create
# a dict and pass it to axes_options argument in the marks
axes_opts = {"x": {"label": "X"}, "y": {"label": "Y"}}

# 3. Create a Lines mark by calling plt.plot function
line = plt.plot(
    x=x, y=y, axes_options=axes_opts
)  # note that custom axes options are passed to the mark function

# 4. Render the figure using plt.show() (displays toolbar as well)
plt.show()

Гистограмма

# first, create data vectors x and y to plot a bar chart
x = list("ABCDE")
y = np.random.rand(5)

# 1. Create the figure object
fig = plt.figure(title="Bar Chart")

# 2. Customize the axes options
axes_opts = {
    "x": {"label": "X", "grid_lines": "none"},
    "y": {"label": "Y", "tick_format": ".0%"},
}

# 3. Create a Bars mark by calling plt.bar function
bar = plt.bar(x=x, y=y, padding=0.5, axes_options=axes_opts)

# 4. directly display the figure object created in step 1 (note that the toolbar no longer shows up)
fig

Точечная диаграмма

# first, let's create two vectors x and y
x = np.linspace(-10, 10, 25)
y = 3 * x + 5
y_noise = y + 10 * np.random.randn(25)  # add some random noise to y

# 1. Create the figure object
fig = plt.figure(title="Scatter and Line")

# 3. Create line and scatter marks
# additional attributes (stroke_width, colors etc.) can be passed as attributes 
# to the mark objects as needed
line = plt.plot(x=x, y=y, colors=["green"], stroke_width=3)
scatter = plt.scatter(x=x, y=y_noise, colors=["red"], stroke="black")

# setting x and y axis labels using pyplot functions. Note that these functions
# should be called only after creating the marks
plt.xlabel("X")
plt.ylabel("Y")

# 4. render the figure
fig

Карта мира

import bqplot.pyplot as plt

fig = plt.figure(title="World Map")
plt.geo(map_data="WorldMap",
        colors={"default_color": "steelblue"})
fig

Хороплет

fig = plt.figure(title="Choropleth")

plt.scales(scales={"color": bq.ColorScale(scheme="Greens")})
chloro_map = plt.geo(
    map_data="WorldMap",
    color={643: 105, 4: 21, 398: 23, 156: 42, 124: 78, 76: 98},
    colors={"default_color": "Grey"},
)
fig

Расширенные прогнозы

import bqplot as bq

fig = plt.figure(title="Advanced World Map")
geo_scale = bq.Orthographic(scale_factor=375, center=[0, 25], rotate=(-50, 0))
plt.scales(scales={"projection": geo_scale})
map_mark = plt.geo(
    map_data="WorldMap",
    colors={682: "green", 356: "red", 643: "blue", "default_color": "orange"},
)
fig

Все остальные подробности и больше примеров можно найти здесь

— — —

Почему библиотека Bqplot стала волшебницей?

Потому что данные могут волшебным образом превращаться в увлекательные визуальные иллюзии!

🙂🙂🙂