干货 | Bokeh交互式数据可视化快速入门

python的Bokeh库如何使用 代码中,我们首先准备了 x 和 y 的数据,然后使用 figure 函数创建了一个图表,并使用 line 函数把数据绘制成了线图,最后通过 output_file 函数导出为 HTML 文件,并使用 show 函数显示图表。添加数据:使用p.line()或p.circle()函数添加数据,命令为p.line(x, y)Bokeh是一个强大的Python数据可视化库,可以用于创建交互式的、高质量的图表和图形。创建图形:使用figure函数创建一个图形,命令为p = figure() 阅读详情

mountains-4505793_1280.jpg

Bokeh简介

Bokeh是一款交互式可视化库,在浏览器上进行展示。

Bokeh可以通过Python(或其它语言),快速便捷地为大型流数据集提供优雅简洁的高性能交互式图表。

安装

在python中有多种安装Bokeh的方法,这里建议最简单的方法是使用Anaconda Python发行版,然后在命令行下输入以下命令:

conda install bokeh

这里会安装Bokeh需要的所有依赖包,并且Anaconda可以最大限度地减少复杂的安装任务。

如果你自信已经安装好你要的依赖,例如numpy,那么可以在命令行使用pip来安装:

pip install bokeh
为什么使用jupyter notebook作为绘图环境

本文代码都是在notebook中执行的,并且图表也直接展示在notebook中。
notebook是用于数据探索的常用工具,在数据科学领域被广泛使用,建议大家在学习Bokeh的过程中使用jupyter notebook。

开始绘图

Bokeh是一个大型库,具有非常多的功能,这里不细讲具体函数方法,只通过一些案例来展示Bokeh的使用流程和可视化界面。

将python列表中的数据绘制成线图非常简单,而且图表是交互式的,能够缩放、平移、保存等其他功能。

图表最终会保存为html格式,并在浏览器中自动打开,这可以通过output_file()函数实现。
如果你使用的是notebook环境,Bokeh可以在notebook中直接显示交互式图表,只要将output_file()函数替换为output_notebook()函数。

# 导入相关库
from bokeh.plotting import figure, output_notebook, show 
% matplotlib inline
# 准备数据
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 在notbook中展示
output_notebook()

# 创建一个带有标题和轴标签的新图表
p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')

# 添加带有图例和线条粗细的线图渲染器
# 
p.line(x, y, legend="Temp.", line_width=2)

# 显示图表
show(p)


上面的例子绘制了一个折线图,简单地展示了bokeh.plotting模块绘图的流程。
一般来说,我们使用bokeh.plotting模块绘图有以下几个步骤:

  • 准备数据
    例子中数据容器为列表,你也可以用numpy array、pandas series数据形式
  • 告诉Bokeh在哪生成输出图表
    上面说过,图表输出有两种形式,一个是在notebook中直接显示,一个是生成HTML文件,在浏览器中自动打开。
  • 调用figure()函数
    创建具有典型默认选项并易于自定义标题、工具和轴标签的图表
  • 添加渲染器
    上面使用的是line()线图函数,并且指定了数据源、线条样式、标签等,你也可以使用其他的绘图函数,如点图、柱状图等
  • 显示或保存图表
    show()函数用来自动打开生成的HTML文件,save()函数用来保存生成的html文件

如果想在一张图里绘制多个数据表,则可以重复上面第4步。
你可以添加多个数据系列,自定义不同的展示风格:

from bokeh.plotting import figure, output_notebook, show

# 准备三个数据系列
x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0]
y0 = [i**2 for i in x]
y1 = [10**i for i in x]
y2 = [10**(i**2) for i in x]

# 在notbook中展示
output_notebook()

# 创建新表
p = figure(
   tools="pan,box_zoom,reset,save",
   y_axis_type="log", y_range=[0.001, 10**11], title="log axis example",
   x_axis_label='sections', y_axis_label='particles'
)

# 添加不同的图表渲染
p.line(x, x, legend="y=x")
p.circle(x, x, legend="y=x", fill_color="white", size=8)
p.line(x, y0, legend="y=x^2", line_width=3)
p.line(x, y1, legend="y=10^x", line_color="red")
p.circle(x, y1, legend="y=10^x", fill_color="red", line_color="red", size=6)
p.line(x, y2, legend="y=10^x^2", line_color="orange", line_dash="4 4")

# 展示图表
show(p)

有时候,绘制图表不光要知道数据点在x、y轴的位置,而且要赋予数据点颜色、大小等属性,展示数据点的其它含义。

import numpy as np

from bokeh.plotting import figure, output_file, show

# 准备数据
N = 4000
x = np.random.random(size=N) * 100
y = np.random.random(size=N) * 100
radii = np.random.random(size=N) * 1.5
colors = [
    "#%02x%02x%02x" % (int(r), int(g), 150) for r, g in zip(50+2*x, 30+2*y)
]

# 在notbook中展示
output_notebook()

TOOLS = "crosshair,pan,wheel_zoom,box_zoom,reset,box_select,lasso_select"

# 创建图表,并添加图标栏工具
p = figure(tools=TOOLS, x_range=(0, 100), y_range=(0, 100))

# 添加圆绘图渲染函数,并且定义元素的颜色、样式
p.circle(x, y, radius=radii, fill_color=colors, fill_alpha=0.6, line_color=None)

# 显示图表
show(p)


对于同一个数据,可能需要多种展示风格,比如说线、点、圆等,并且把多个图表放在一起,Bokeh能够做到。

import numpy as np

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

# 准备数据
N = 100
x = np.linspace(0, 4*np.pi, N)
y0 = np.sin(x)
y1 = np.cos(x)
y2 = np.sin(x) + np.cos(x)


# 在notbook中展示
output_notebook()

# 创建子图表1,元素样式为圆
s1 = figure(width=250, plot_height=250, title=None)
s1.circle(x, y0, size=10, color="navy", alpha=0.5)

# 创建子图表2,元素样式为三角形
s2 = figure(width=250, height=250, x_range=s1.x_range, y_range=s1.y_range, title=None)
s2.triangle(x, y1, size=10, color="firebrick", alpha=0.5)

# 创建子图表3,元素样式为正方形
s3 = figure(width=250, height=250, x_range=s1.x_range, title=None)
s3.square(x, y2, size=10, color="olive", alpha=0.5)

# 将多个子图放到网格图中
p = gridplot([[s1, s2, s3]], toolbar_location=None)

# 显示图表
show(p)

绘制股票价格走势图,这类是关于时间序列的图表。

import numpy as np

from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import AAPL

# 准备数据
aapl = np.array(AAPL['adj_close'])
aapl_dates = np.array(AAPL['date'], dtype=np.datetime64)

window_size = 30
window = np.ones(window_size)/float(window_size)
aapl_avg = np.convolve(aapl, window, 'same')

# 在notbook中展示
output_notebook()

# 创建新图表
p = figure(plot_width=800, plot_height=350, x_axis_type="datetime")

# 添加图表渲染
p.circle(aapl_dates, aapl, size=4, color='darkgrey', alpha=0.2, legend='close')
p.line(aapl_dates, aapl_avg, color='navy', legend='avg')

# 设置图表元素
p.title.text = "AAPL One-Month Average"
p.legend.location = "top_left"
p.grid.grid_line_alpha = 0
p.xaxis.axis_label = 'Date'
p.yaxis.axis_label = 'Price'
p.ygrid.band_fill_color = "olive"
p.ygrid.band_fill_alpha = 0.1

# 显示图表
show(p)

总结

上述几个示例简单展示了Bokeh绘图方法,希望起到一个抛砖引玉的作用,让大家了解到Bokeh的强大之处,去探索更多的用法。

Python数据可视化自动化工具:让数据跃然纸上 自动化数据可视化工具可以显著提高数据分析的效率和准确性。通过Python的强大库和工具,我们可以轻松生成各种类型的图表,直观展示数据中的信息。希望本文的介绍能够帮助你更好地掌握自动化数据可视化技术,并应用到实际项目中。 阅读详情

相关推荐

详解卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。

qq_25762497的博客 25万+

bokeh,一个超强的 Python 库详解

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

Rocky006的博客 3903

从STM32转战小华HC32F448:手把手教你搞定串口复用与超时中断(附完整代码)

本文详细介绍了从STM32迁移到小华HC32F448的串口开发实战指南,重点解析了HC32F448的GPIO复用系统和超时中断机制。通过对比STM32的架构差异,提供了完整的串口配置代码和优化方案,帮助开发者快速掌握HC32F448的串口通信技术,适用于工业控制等应用场景。

weixin_30564901的博客 549

Python Bokeh库详解:交互式数据可视化

数据可视化在数据分析和科学研究中起着至关重要的作用。而Bokeh(发音为“bo-kay”)是一个强大的Python交互式可视化库,提供了丰富的工具和功能,使得创建交互式、吸引人的数据可视化变得轻而易举。本文将深入介绍Bokeh库的各个方面,通过丰富的示例代码,帮助读者更全面地了解和使用这一强大的工具。

Rocky006的博客 2825

Clock Gating设计陷阱:为什么你的ICG cell总是导致setup violation?(附解决方案)

本文深入分析了数字IC设计中ICG(Integrated Clock Gating)单元导致setup时序违规的常见问题,包括时钟偏斜和数据路径过长两大核心原因。通过量化分析影响因素,提供了逻辑重组、寄存器重定时等优化策略,并介绍了预防性设计方法和物理实现阶段的优化技巧,帮助工程师有效解决ICG相关的setup violation问题。

weixin_29168153的博客 206

基于 ESP32 的智能药盒提醒装置设计与实现

本装置基于 ESP32 实现了智能药盒的核心功能,硬件选型兼顾成本与实用性,软件设计模块化、易拓展。后续可通过 ESP32 的 WiFi 模块接入物联网平台(如阿里云、OneNet),实现远程设置提醒、服药状态反馈等功能,进一步提升智能化水平。该装置能有效解决老人忘服药问题,具有较高的实用价值与推广潜力。

weixin_42300449的博客 1045

Bokeh 手把手安装教程

Bokeh 安装教程 Bokeh 相关文档 List item Git 地址:https://github.com/bokeh/bokeh 官网:https://bokeh.pydata.org/en/latest/ 安装方式 pip install bokeh 需要安装的依赖库安装 Numpy Six Request Tornado PyYaml Futures ...

weixin_43843096的博客 2785

SAP Fiori Launchpad 概述

SAP Fiori launchpad 是托管 SAP Fiori 应用程序的 shell,并为应用程序提供导航、个性化、嵌入式支持和应用程序配置等服务。SAP Fiori Launchpad 是移动和桌面设备上 SAP Fiori 应用程序的入口点。启动板显示带有图块的主页,其中可以显示实时状态指示器,例如打开的任务数量。每个图块代表用户可以启动的业务应用程序。这包括 SAP Business Suite 事务应用程序和 SAP Smart Business 分析应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 933

python数据分析与可视化交互式_干货 | Bokeh交互式数据可视化快速入门

Bokeh简介Bokeh是一款交互式可视化库,在浏览器上进行展示。Bokeh可以通过Python(或其它语言),快速便捷地为大型流数据集提供优雅简洁的高性能交互式图表。 安装在python中有多种安装Bokeh的方法,这里建议最简单的方法是使用Anaconda Python发行版,然后在命令行下输入以下命令:conda install bokeh这里会安装Bokeh需要的所有依赖包,并且Anac...

weixin_39677419的博客 198

python中有趣的库 freegames 的详细使用

freegames 是一个包含多个简单 Python 游戏的开源库,适合初学者学习 Python 编程和游戏开发。以下是 freegames 的详细介绍和用法示例。

数据知道的博客 3万+

论文分栏前后内容不连续?教你word如何删除分节符

问题 当我们在写论文的时候,很多期刊的模板都是两栏的格式,但有的时候我们插入的图像尺寸可能太大,两栏格式放不下,因此需要将其以一栏的格式出入,如下: 但当我们把图片删除后,再将其转换成两栏格式,前后内容就出现不连续的情况: 正常情况下应该是如下: 正确处理方式 里面有个分页符,把分页符去掉,或者把你的文字全部复制到记事本里,然后重新复制回word就可以取消原有的格式了。 删除分节符的方法(以word 2019为例) -点击菜单栏上的“视图”,点击“大纲视图”。 可以看到word文档以整列的形式展开:

左手の明天的博客 1万+

干货:12个案例教你用Python玩转数据可视化(建议收藏)

导读:相比于科学,数据分析更像是一门艺术。创建样式优美的数据可视化是这个艺术中不可缺少的部分。然而,某些人认为优美的,也会有人觉得难以接受。和艺术类似,随着数据分析的快速...

大数据 1万+

【Pix4d精品教程】Pix4d空三后处理:点云分类与过滤、DSM精编生成DEM、生成等高线案例详解

本文详细介绍了利用Pix4D软件进行无人机摄影测量后处理的关键步骤,主要包括点云分类与分配、DEM精编生成和等高线绘制三个核心环节。首先通过点云分类区分地面、植被等7种地物类型,然后通过点云分配将地面点云归并到Ground类别,剔除植被等干扰要素。随后重新运行DSM生成步骤获取精确DEM,最后在附加输出中设置参数生成标准等高线。文中配有详细的操作截图和注意事项,如处理前需备份原始DSM/DOM数据,并解释了DEM与DSM的本质区别。该教程为无人机摄影测量内业处理提供了完整的解决方案。

智慧空间实验室 1万+

美观实用!Star 过万,用 Python 做交互式图形的这款工具火了!

点击上方“AI遇见机器学习”,选择“星标”公众号原创干货,第一时间送达 转自量子位,作者乾明GitHub 上,一份用 Python 做交互式图形的资源火了。这一工具名为Bokeh,官方...

weixin_36896856的博客 161

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python df共有几行_干货:12个案例教你用Python玩转数据可视化(建议收藏)

点击上方“Python数据之道”,选择“星标公众号”精品文章,第一时间送达Photo by Iker Urteaga on Unsplash作者 | 伊凡·伊德里斯(Ivan Idris)来源|大数据(ID:hzdashuju)内容出自图书《Python数据分析实战》12个案例教你用Python玩转数据可视化导读:相比于科学,数据分析更像是一门艺术。创建样式优美的数据可视化是这个艺术...

weixin_39898733的博客 763

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

十大保姆级Python可视化绘制工具推荐~~

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达今天我们会介绍一下10个适用于多个学科的Python数据可视化库,其中有名气很大的也有鲜为人知的1、matplotlib保姆级教程Matplotlib 1.4W+字教程(收藏吃灰去吧~~)两个直方图matplotlib 是Python可视化程序库的泰斗。经过十几年它任然是Python使用者最常用的画图库。它的设计和在1980年代...

小白学视觉 2060

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python 亮度一致_干货丨12个案例教你用Python玩转数据可视化

作者|伊凡·伊德里斯(IvanIdris),曾是Java和数据库应用开发者,后专注于Python和数据分析领域,致力于编写干净、可测试的代码。他还是《PythonMachineLearningByExample》《NumPyCookbook》等书的作者,在工程实践和书籍撰写方面都非常有经验。(本文摘编自《Python数据分析实战》,经出版方授权发布。)本文经授权转载自公众...

weixin_39739170的博客 359

python数据可视化第三方库_【干货】Pycon 2017: Python可视化库大全

看完这张图是不是有点懵?别着急,我们一起来看看后面的阐述。python可视化库可以大致分为几类:基于matplotlib的可视化库基于JS的可视化库基于上述两者或其他组合功能的库基于matplotlib的可视化库matplotlib是python可视化库的基础。matplotlib库的设计参考了matlab,甚至连名称也是以“mat”开头。matplotlib库的一些优势:(翻译比较别扭,英文原文...

weixin_39964978的博客 343

干货:用Python玩转数据可视化,炫酷图表是这样做出来的

导读:相比于科学,数据分析更像是一门艺术。创建样式优美的数据可视化是这个艺术中不可缺少的部分。然而,某些人认为优美的,也会有人觉得难以接受。和艺术类似,随着数据分析的快速演变,人们的观念和品味也一直在变化。但是总的来说没有人是绝对正确和错误的。 作为一个数据艺术家以及有经验的Python程序员,我们可以从matplotlib、Seaborn、Bokeh和ggplot这些库里面选择一些来使用。 ...

大数据 4523

如何选择合适的Python数据可视化库来满足不同的需求?

在选择库时,考虑你的项目需求、数据量大小、是否需要交互性、以及你熟悉的技术栈。如果你需要进行复杂的数据探索,Altair可能是一个不错的选择。选择合适的数据可视化库时,需要考虑多个因素,包括你的具体需求、数据类型、图表类型、交互性需求、开发成本和维护等。不仅学会如何编程,还将学会如何将AI技术应用到实际问题中,为您的职业生涯增添一笔宝贵的财富。,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。

借雨醉东风的博客 943

一图胜千言!数据可视化多维讲解

↑↑↑关注后"星标"Datawhale每日干货&每月组队学习,不错过Datawhale干货作者:Dipanjan,来源:机器之心数据聚合、汇总和可视化是支撑...

Datawhale 1495

【干货】Pycon 2017: Python可视化库大全

看完这张图是不是有点懵? 别着急,我们一起来看看后面的阐述。 python可视化库可以大致分为几类: 基于matplotlib的可视化库 基于JS的可视化库 基于上述两者或其他组合功能的库 基于matplotlib的可视化库 matplotlib是python可视化库的基础。matplotlib库的设计参考了matlab,甚至连名称也是以“ma...

weixin_33907511的博客 152

python开发者应该关注到7个类库

前言 不管从事什么行业都需要累计,累计经验、累计案例、累计知识技术 Django 依然是 Python 开发者值得信赖的库。然而,在 2016 年几个还不太知名的库引起了 Python 开发者的关注。在这篇博文中,我向大家揭示 7 个 Python 类库,其中不包括像 Django,Flask 等已广为熟知的库,这些类库在 2017 年可能值得 Python 开发者参考 这里还是要推荐下...

qq_42489308的博客 229
上一篇: numba,让python速度提升百倍!
下一篇: 使用Python验证常见50个正则表达式
「已注销」
博客等级 码龄9年 5粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值