如何使用 Bokeh Python 可视化多行数据?

如何使用 Bokeh Python 可视化多行数据?

Bokeh 是一个用于现代化 Web 浏览器中绘制直观交互式图表的 Python 库。它拥有强大的可定制性,能够快速地生成丰富的数据可视化。本文将介绍如何使用 Bokeh Python 库绘制多行数据的可视化图表。

更多Python教程,请阅读:Python 教程

安装

Bokeh 可以通过 pip 进行安装,下面是在终端输入的命令:

pip install bokeh

准备数据

首先,我们需要准备数据。在本文中,使用了官方开源数据集中的 mpg 数据集,该数据集包含了 234 条不同车型的燃油效率数据。以下是使用 Pandas 库读取 mpg 数据集的步骤:

import pandas as pd

# 读取 mpg 数据集
mpg = pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/mpg.csv")

为了可视化多行数据,我们需要将 mpg 数据集中的数据根据不同的车型品牌分组。以下是分组代码:

from itertools import cycle

# 车型品牌列表
brands = ['audi', 'bmw', 'ford', 'mercedes', 'toyota', 'volkswagen']

# 车型品牌颜色列表
colors = cycle(["#FF5733", "#A9CCE3", "#F7DC6F", "#00BFFF", "#F5B041", "#2ECC71"])

# 按照车型品牌分组
grouped = mpg.groupby("manufacturer")

# 将分组结果存储到字典中
plot_data = {}
for brand, color in zip(brands, colors):
    try:
        data = grouped.get_group(brand)
        plot_data[brand] = {"x": data["horsepower"], "y": data["mpg"], "color": color}
    except KeyError:
        pass

以上代码将数据按照车型品牌进行分组,每个品牌对应颜色列表中的一种颜色,同时将分组后的数据存储到一个字典中,用于后续绘制图表使用。

绘制图表

有了准备的数据,我们就可以使用 Bokeh 库来绘制图表。以下是使用 Bokeh 库绘制折线图的代码:

from bokeh.plotting import figure, show

# 创建绘图区域
p = figure(plot_width=800, plot_height=500)

# 循环遍历字典,绘制每个品牌的数据
for brand, data in plot_data.items():
    p.line(x=data["x"], y=data["y"], line_color=data["color"], legend_label=brand)

# 设置图表标题和坐标轴标签
p.title.text = "车型品牌燃油效率"
p.xaxis.axis_label = "马力"
p.yaxis.axis_label = "每加仑燃油里程"

# 显示图表
show(p)

以上代码创建了一个名为 p 的绘图区域,然后使用循环遍历字典,绘制每个品牌的数据。每条折线图都有对应的车型品牌和颜色。最后,设置了图表标题和坐标轴标签,并使用 show() 方法将图表显示出来。

定制图表

Bokeh 库支持对绘制的图表进行定制,以满足用户的不同需求。以下是对绘图区域、线条、图例和坐标轴等进行定制的代码:

# 创建绘图区域
p = figure(plot_width=800, plot_height=500, toolbar_location=None, tools="")

# 循环遍历字典,绘制每个品牌的数据
for brand, data in plot_data.items():
    p.line(x=data["x"], y=data["y"], line_width=2.5, line_color=data["color"], legend_label=brand)

# 设置图表标题和坐标轴标签
p.title.text = "车型品牌燃油效率"
p.title.align = "center"
p.title.text_color = "#444444"
p.title.text_font_size = "20pt"
p.xaxis.axis_label = "马力"
p.xaxis.axis_label_text_color = "#444444"
p.yaxis.axis_label = "每加仑燃油里程"
p.yaxis.axis_label_text_color = "#444444"

# 隐藏上方和右侧的坐标轴,设置下方和左侧的坐标轴的标签和线条颜色和线条宽度
p.axis.visible = False
p.xaxis.axis_line_color = "#444444"
p.xaxis.major_label_text_color = "#444444"
p.xaxis.major_tick_line_color = "#444444"
p.yaxis.axis_line_color = "#444444"
p.yaxis.major_label_text_color = "#444444"
p.yaxis.major_tick_line_color = "#444444"
p.yaxis.major_tick_line_width = 2.5

# 定义图例的位置和字体样式
p.legend.location = "top_left"
p.legend.label_text_font_size = "12pt"

# 显示图表
show(p)

以上代码隐藏了绘图区域的工具栏,对绘制的线条进行了明显的加粗和颜色定义,对图表标题、坐标轴、图例的字体样式进行了定制。最后,使用 show() 方法将图表显示出来。

结论

Bokeh 是一种功能强大的可视化工具,使用它可以方便地绘制丰富的数据可视化图表。本文介绍了如何使用 Bokeh Python 库绘制多行数据的可视化图表,并展示了如何定制图表以适应用户自己的需求。我们希望这篇文章能够帮助你使用 Bokeh 来更好地展示数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程