一款超好用的 Python 交互式可视化工具,强烈推荐~

当我们在日常中需要使用 Python 数据可视化时,最先想到的要数 matplotlib 和 seborn,它们几乎覆盖各种常见的可视化绘图场景,例如柱状图、折线图、饼图等,但是它们也存在短板:不适合动态和交互式绘图,而能弥补这一场景的就是我们今天介绍的一款明星可视化工具 - Bokeh,它可以绘制非常灵活的 Web 交互式可视化图表。

文档地址:docs.bokeh.org/en/latest/d...

代码仓库:github.com/bokeh/bokeh

在使用 bokeh 之前,我们可以使用 pip 安装它,但是需要注意的是,我们需要先安装 bokeh 的依赖插件,如 pandas 和 numpy,可以用于一些数据分析统计!

ruby 复制代码
pip install bokeh -i https://mirrors.aliyun.com/pypi/simple/

当然 bokeh 不仅支持交互式可视化图形,它支持多种常见的图表类型,包括折线图、散点图、柱状图等。每种图表都有丰富的定制选项,可以调整颜色、大小、透明度等属性,满足不同的可视化需求。

以下我们举个简单的绘制折线图的例子,如下所示,具体逻辑都有注释在代码中

ini 复制代码
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
import numpy as np

# 启用 Notebook 输出
output_notebook()

# 创建数据
x = np.linspace(0, 4 * np.pi, 100)
y = np.sin(x)

# 创建图表对象
p = figure(title="Simple Sine Curve", width=400, height=400)

# 添加曲线
p.line(x, y, legend_label="sin(x)", line_width=2)

# 显示图表
show(p)

当然,Bokeh 的真正强大之处在于其交互上的能力,我们可以为图表添加工具条,实现缩放、平移、保存等功能,甚至可以添加悬停提示等。其不仅提升用户使用体验,还能让用户更加深入探索数据。

Bokeh 提供了多种内置工具,也可以自定义工具以满足特定需求。以下是为图表添加交互工具的示例:

css 复制代码
from bokeh.plotting import figure, show
from bokeh.models import HoverTool

# 创建图表并添加工具
p = figure(width=400, height=400, tools="pan,box_zoom,wheel_zoom,reset,save")

# 配置悬停提示
hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y")])
p.add_tools(hover)

# 添加一些示例数据
p.scatter([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20)

show(p)

通过以上两个实例,相信你已经掌握 Bokeh 的基本使用方法,现在就开始你的 Bokeh 之旅吧!用它来讲述你的数据故事,创造令人惊叹的可视化交互作品吧!

如果你喜欢本文,欢迎点赞,并且关注我们的微信公众号:Python技术极客 ,我们会持续更新分享 Python 开发编程、数据分析、数据挖掘、AI 人工智能、网络爬虫等技术文章!让大家在Python 技术领域持续精进提升,成为更好的自己!

添加作者微信(coder_0101),拉你进入行业技术交流群,进行技术交流~

相关推荐
月明长歌4 分钟前
【码道初阶】【LeetCode 958】判定完全二叉树:警惕 BFS 中的“管中窥豹”陷阱
算法·leetcode·宽度优先
一直都在5721 小时前
数据结构入门:二叉排序树的构建与相关算法
数据结构·算法
_Minato_1 小时前
数据结构知识整理——复杂度的计算
数据结构·经验分享·笔记·算法·软考
listhi5201 小时前
针对燃油运输和车辆调度问题的蚁群算法MATLAB实现
前端·算法·matlab
月明长歌1 小时前
【码道初阶】【LeetCode 102】二叉树层序遍历:如何利用队列实现“一层一层切蛋糕”?
java·数据结构·算法·leetcode·职场和发展·队列
星诺算法备案1 小时前
读懂大模型备案流程,开启技术安全应用新征程
人工智能·算法·推荐算法·备案
Loo国昌2 小时前
大型语言模型推理范式演进:从提示工程到思维算法
人工智能·算法·语言模型·自然语言处理
代码游侠2 小时前
学习笔记——线程控制 - 互斥与同步
linux·运维·笔记·学习·算法
yaoh.wang2 小时前
力扣(LeetCode) 66: 加一 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·跳槽
wanderist.2 小时前
2025年蓝桥杯省赛C++大学A组
c++·算法·蓝桥杯