Python 数据可视化库之bokeh使用详解

这篇具有很好参考价值的文章主要介绍了Python 数据可视化库之bokeh使用详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 数据可视化库之bokeh使用详解,信息可视化,python,数据分析


概要

数据可视化在数据分析和报告中扮演着关键角色,而Python的Bokeh库为创建交互式、具有吸引力的可视化图表提供了强大的工具。本文将介绍Bokeh的基本概念、安装方法以及详细的示例代码,以帮助大家了解如何使用Bokeh创建出色的数据可视化。


什么是Bokeh?

Bokeh是一个Python库,用于创建交互式的、现代化的Web可视化工具。它允许用户创建各种类型的图表,包括线图、散点图、柱状图、热图等,而且这些图表都可以在Web浏览器中交互式地操作。

Bokeh的主要特点包括:

  • 交互性:Bokeh提供了丰富的交互性选项,使用户能够在图表上进行缩放、平移、选择数据点等操作。

  • 现代化的外观:Bokeh的图表外观非常现代化和吸引人,可以定制颜色、线条样式等。

  • 多种输出格式:Bokeh支持多种输出格式,包括HTML、Jupyter Notebook、交互式应用程序等。

  • 无需前端开发经验:使用Bokeh,不需要具备前端开发的经验,就可以创建交互式的Web可视化。

  • 支持大数据集:Bokeh能够有效地处理大数据集,因此适用于各种规模的数据分析任务。

安装Bokeh

要开始使用Bokeh,首先需要安装它。可以使用pip来安装Bokeh:

pip install bokeh

安装完成后,就可以在Python代码中导入Bokeh并开始使用它。

基本用法

创建简单的图表

一个简单的示例开始,创建一个基本的折线图:

from bokeh.plotting import figure, output_file, show

# 创建一个输出HTML文件
output_file("simple_line_chart.html")

# 创建一个图表对象
p = figure(title="Simple Line Chart", x_axis_label="X-axis", y_axis_label="Y-axis")

# 添加数据点
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 绘制折线
p.line(x, y, line_width=2)

# 显示图表
show(p)

在这个示例中,首先创建一个输出HTML文件,然后创建一个图表对象(p)。接下来,定义了X和Y轴的数据点,并使用p.line方法绘制了折线。最后,使用show函数来显示图表。

添加交互性

Bokeh的一个强大之处在于它的交互性。

一个添加交互性的示例:

from bokeh.plotting import figure, output_file, show
from bokeh.models import HoverTool

# 创建一个输出HTML文件
output_file("interactive_line_chart.html")

# 创建一个图表对象
p = figure(title="Interactive Line Chart", x_axis_label="X-axis", y_axis_label="Y-axis")

# 添加数据点
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 绘制折线
line = p.line(x, y, line_width=2)

# 添加悬停工具
hover = HoverTool()
hover.tooltips = [("X", "@x"), ("Y", "@y")]
p.add_tools(hover)

# 显示图表
show(p)

在这个示例中,添加了一个悬停工具(HoverTool),当鼠标悬停在数据点上时,会显示X和Y的值。这增加了图表的交互性,使用户能够查看数据的详细信息。

绘制多个图表

Bokeh还可以绘制多个图表并将它们组合在一起。

以下是一个示例,演示如何创建一个包含多个子图表的布局:

from bokeh.plotting import figure, output_file, show
from bokeh.layouts import gridplot

# 创建一个输出HTML文件
output_file("multiple_subplots.html")

# 创建多个图表对象
p1 = figure(title="Subplot 1")
p2 = figure(title="Subplot 2")
p3 = figure(title="Subplot 3")
p4 = figure(title="Subplot 4")

# 添加数据点
x = [1, 2, 3, 4, 5]
y1 = [6, 7, 2, 4, 5]
y2 = [5, 4, 3, 2, 1]
y3 = [1, 2, 1, 2, 1]
y4 = [3, 2, 4, 1, 5]

# 绘制子图表
p1.line(x, y1)
p2.line(x, y2)
p3.line(x, y3)
p4.line(x, y4)

# 创建一个子图表布局
layout = gridplot([[p1, p2], [p3, p4]])

# 显示图表
show(layout)

在这个示例中,创建了四个子图表(p1p2p3p4),然后使用gridplot将它们组合成一个2x2的布局。最后,使用show函数来显示整个布局。

高级用法

绘制3D图形

Bokeh不仅支持2D图形,还支持绘制3D图形。要绘制3D图形,可以使用Bokeh的figure模块中的figure()函数并指定output_backend='webgl'参数来启用WebGL渲染。然后,可以使用3D绘图方法,如line3d()scatter3d()来创建3D图形。

from bokeh.plotting import figure, output_file, show

# 创建一个输出HTML文件
output_file("3d_plot.html")

# 创建3D图表对象
p = figure(title="3D Plot", output_backend='webgl')

# 添加数据点
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
z = [3, 2, 4, 1, 5]

# 绘制3D散点图
p.scatter3d(x, y, z, size=10)

# 显示图表
show(p)

创建交互式小部件

Bokeh支持创建交互式小部件,这些小部件可以让用户与图表进行互动。例如,可以创建一个滑块小部件,用于动态调整图表中的参数,或创建一个复选框小部件,用于切换不同的数据视图。

from bokeh.plotting import figure, curdoc
from bokeh.models import Slider

# 创建一个图表对象
p = figure(title="Interactive Plot", x_axis_label="X-axis", y_axis_label="Y-axis")

# 添加数据点
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 绘制折线
line = p.line(x, y, line_width=2)

# 创建一个滑块小部件
slider = Slider(start=0.1, end=2, step=0.1, value=1, title="Line Width")

# 定义滑块变化时的回调函数
def update_line_width(attr, old_value, new_value):
    line.line_width = new_value

# 将回调函数与滑块小部件绑定
slider.on_change('value', update_line_width)

# 将图表和滑块小部件放入文档
curdoc().add_root(p)
curdoc().add_root(slider)

这个示例中,创建了一个滑块小部件,并定义了一个回调函数,当滑块的值变化时,会更新图表的折线宽度。

嵌入Bokeh图表到Flask应用程序

可以将Bokeh图表嵌入到Web应用程序中,例如使用Flask框架。首先,需要创建一个Flask应用程序,并使用Bokeh的components()函数将图表组件嵌入到HTML模板中。

from flask import Flask, render_template
from bokeh.plotting import figure
from bokeh.embed import components

app = Flask(__name__)

@app.route('/')
def index():
    # 创建一个图表对象
    p = figure(title="Embedded Bokeh Plot")
    
    # 添加数据点
    x = [1, 2, 3, 4, 5]
    y = [6, 7, 2, 4, 5]
    
    # 绘制折线
    p.line(x, y, line_width=2)
    
    # 将图表组件嵌入到HTML模板中
    script, div = components(p)
    
    return render_template('index.html', script=script, div=div)

if __name__ == '__main__':
    app.run()

在上述示例中,创建了一个Flask应用程序,定义了一个路由处理函数,将Bokeh图表组件嵌入到HTML模板中,并在浏览器中渲染。

总结

Bokeh是一个功能丰富的Python库,用于创建交互式和现代化的数据可视化。无论是进行数据分析、报告生成还是构建Web应用程序,Bokeh都是一个强大的工具。希望本文的介绍和示例有助于大家入门Bokeh,并开始在Python项目中创建引人注目的数据可视化。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!文章来源地址https://www.toymoban.com/news/detail-801379.html

到了这里,关于Python 数据可视化库之bokeh使用详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 数据可视化详解

    数据可视化是一种将庞杂抽象的数据转化为直观易懂的图形的数据呈现技术,它能帮助我们快速把握数据的分布和规律,更加轻松地理解和探索信息。在当今这个信息爆炸的时代,数据可视化越来越受重视。  Matplotlib是Python中最常用、最著名的数据可视化模块,该模块的子模

    2024年02月01日
    浏览(26)
  • 【python可视化大屏】使用python实现可拖拽数据可视化大屏

    我在前几期分享了关于爬取weibo评论的爬虫,同时也分享了如何去进行数据可视化的操作。但是之前的可视化都是单独的,没有办法在一个界面上展示的。这样一来呢,大家在看的时候其实是很不方便的,就是没有办法一目了然的看到数据的规律。为了解决这个问题我使用p

    2024年02月03日
    浏览(62)
  • python机器学习数据建模与分析——决策树详解及可视化案例

    你是否玩过二十个问题的游戏,游戏的规则很简单:参与游戏的一方在脑海里想某个事物,其他参与者向他提问题,只允许提20个问题,问题的答案也只能用对或错回答。问问题的人通过推断分解,逐步缩小待猜测事物的范围。决策树的工作原理与20个问题类似,用户输人一系

    2024年02月03日
    浏览(46)
  • Python 实战之ChatGPT + Python 实现全自动数据处理/可视化详解

    一、引言 二、成果演示——口述式数据可视化 三、远原理述 四、实现过程   (一)环境配置   (二)申请OpenAI账号   (一)调用ChatGPT API   (二)设计AI身份,全自动处理数据 五、再谈此次探索 六、总结 OpenAI 公司开发的 ChatGPT 已经火了一年多了,这期间各种 AI 产品以

    2024年02月10日
    浏览(52)
  • 【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码

    目录 1. 数据分布的可视化 1.1 直方图(Histograms) 1.2 核密度估计图(Kernel Density Estimation Plot)

    2024年02月06日
    浏览(54)
  • 如何使用Python进行数据可视化

    数据可视化是一种将数据呈现为图形或图表的技术,它有助于理解和发现数据中的模式和趋势。Python是一种流行的编程语言,有很多库可以帮助我们进行数据可视化。在本文中,我们将介绍使用Python进行数据可视化的基本步骤。 第一步:导入必要的库 在开始之前,我们需要

    2024年02月08日
    浏览(52)
  • python-数据可视化-使用API

    使用Web应用程序编程接口 (API)自动请求网站的特定信息而不是整个网页,再对这些信息进行可视化 Web API是网站的一部分,用于与使用具体URL请求特定信息的程序交互。这种请求称为API调用 。请求的数据将以易于处理的格式(如JSON或CSV)返回。依赖于外部数据源的大多数

    2024年02月11日
    浏览(39)
  • Python 数据可视化:Seaborn 库的使用

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 Seaborn 是一个基于 Python 的数据可视化库,它

    2024年02月07日
    浏览(46)
  • Pytorch深度学习实战3-8:详解数据可视化组件TensorBoard安装与使用

    在深度学习领域,网络内部如同黑箱,其中包含大量的连接参数,这给人工调试造成极大的困难。 Tensorboard 则是神经网络的可视化工具,可以记录训练过程的数字、图像、运行图等内容,方便研究人员对训练参数进行统计,观察神经网络训练过程并指导参数优化。 参考

    2023年04月09日
    浏览(43)
  • 【100天精通Python】Day72:Python可视化_一文掌握Seaborn库的使用《二》_分类数据可视化,线性模型和参数拟合的可视化,示例+代码

    目录 1. 分类数据的可视化 1.1 类别散点图(Categorical Scatter Plot) 1.2 类别分布图(Categorical Distribution Plot)

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包