Bokeh для визуализации данных с помощью Python | Месяц темы Python

задняя часть Python визуализация данных
Bokeh для визуализации данных с помощью Python | Месяц темы Python

Эта статья участвует в "Месяце тем Python", подробнее см.Ссылка на мероприятие

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

Установить

Чтобы установить этот тип, введите следующую команду в терминале.

pip install bokeh

image.png

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

Боке на диаграмме рассеяния можно нарисовать с помощью метода scatter() модуля построения графика. Здесь координаты x и y передаются соответственно.

пример:

# 导入模块
from bokeh.plotting import figure, output_file, show
from bokeh.palettes import magma
import pandas as pd


# 实例化图形对象
graph = figure(title = "Bokeh Scatter Graph")

# 读取数据库
data = pd.read_csv("tips.csv")

color = magma(256)

# 绘制图形
graph.scatter(data['total_bill'], data['tip'], color=color)

# 展示模型
show(graph)

вывод:

image.png

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

пример:

# 导入模块
from bokeh.plotting import figure, output_file, show
import pandas as pd

# 实例化图形对象
graph = figure(title = "Bokeh Bar Chart")

# 读取数据库
data = pd.read_csv("tips.csv")

# 提示列的每个唯一值的计数
df = data['tip'].value_counts()

# 绘制图形
graph.line(df, data['tip'])

# 展示模型
show(graph)

вывод:

image.png

гистограмма

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

пример:

# 导入模块
from bokeh.plotting import figure, output_file, show
import pandas as pd


# 实例化图形对象
graph = figure(title = "Bokeh Bar Chart")

# 读取数据库
data = pd.read_csv("tips.csv")

# 绘制图形
graph.vbar(data['total_bill'], top=data['tip'])

# 展示模型
show(graph)

вывод:

image.png

Интерактивная визуализация данных

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

Interactive Legends

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

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

пример:

# 导入模块
from bokeh.plotting import figure, output_file, show
import pandas as pd


# 实例化图形对象
graph = figure(title = "Bokeh Bar Chart")

# 读取数据库
data = pd.read_csv("tips.csv")

# 绘制图形
graph.vbar(data['total_bill'], top=data['tip'],
		legend_label = "Bill VS Tips", color='green')

graph.vbar(data['tip'], top=data['size'],
		legend_label = "Tips VS Size", color='red')

graph.legend.click_policy = "hide"

# 展示模型
show(graph)

вывод:

interactivelegendsbokeh.gif

Добавить виджет

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

кнопка

Этот виджет добавляет в рисунок простой виджет-кнопку. Мы должны передать пользовательскую функцию JavaScript в метод CustomJS() класса модели.

флажок

Добавьте на диаграмму стандартные флажки. Как и в случае с кнопками, мы должны передать пользовательскую функцию JavaScript в метод CustomJS() класса модели.

одна кнопка

Добавляет простой переключатель и принимает пользовательскую функцию JavaScript.

пример:

from bokeh.io import show
from bokeh.models import Button, CheckboxGroup, RadioGroup, CustomJS

button = Button(label="GFG")

button.js_on_click(CustomJS(
	code="console.log('button: click!', this.toString())"))

# 复选框和单选按钮的标签
L = ["First", "Second", "Third"]

# 活动参数集默认检查选定的值
checkbox_group = CheckboxGroup(labels=L, active=[0, 2])

checkbox_group.js_on_click(CustomJS(code="""
	console.log('checkbox_group: active=' + this.active, this.toString())
"""))

# 活动参数集默认检查选定的值
radio_group = RadioGroup(labels=L, active=1)

radio_group.js_on_click(CustomJS(code="""
	console.log('radio_group: active=' + this.active, this.toString())
"""))

show(button)
show(checkbox_group)
show(radio_group)

вывод:

image.pngimage.pngimage.png

Уведомление:Все эти кнопки откроются на новой вкладке.

Ползунок: добавляет ползунок к рисунку. Также требуется пользовательская функция JavaScript.

Пример:

from bokeh.io import show
from bokeh.models import CustomJS, Slider

slider = Slider(start=1, end=20, value=1, step=2, title="Slider")

slider.js_on_change("value", CustomJS(code="""
	console.log('slider: value=' + this.value, this.toString())
"""))

show(slider)

вывод:

bokehtutorialslider.gif

Кроме того, доступно больше виджетов, таких как выпадающие меню или виджеты вкладок.

В следующем разделе продолжаем рассказывать о четвертой библиотеке —Plotly

🥇 Резюме серии Python для визуализации данных

🧵 Другие статьи по теме

🍰Рекомендуемые статьи из прошлого:

Если вы действительно узнали что-то новое из этой статьи, ставьте лайк, добавляйте в закладки и делитесь с друзьями. 🤗Наконец, не забудьте поддержать ❤ или 📑