写代码可能是程序员的强项,但对于可视化数据,特别是可交互式的数据可视化,还是挺挠头的。
想象一下,如果你能够创建一个交互式的图表,让观众通过滑动条或按钮来探索数据的不同维度,这不仅能提升报告的专业度,同时也能让你的观众更加投入。
幸运的是,Bokeh(发音为“boh-kay”)为这样的需求提供了完美的解决方案。
探索 Bokeh 的魅力
Bokeh 是一个强大的 Python 可视化库,它让数据分析师和开发者能够轻松创造交互式图表、应用和仪表板。
由于 Bokeh 专为现代网络浏览器设计,因此它可以在 Web 页面上带来高性能的交互体验,这让它在数据可视化领域独树一帜。
Bokeh 是由 Continuum Analytics 创立,并且一直作为一个开源项目在不断发展。
与 Matplotlib 这样的库不同,Bokeh 不仅仅停留在创建静态图表的层面,而是支持丰富的网页端交互功能。
而与另一个可视化库 Plotly 相比,则具有更强的灵活性和开源社区的驱动,没有商业使用的限制。
目前 Bokeh 支持 Python 3.6 及其以上的版本,能够完美地应用于大数据集的可视化、实时数据更新以及综合的服务器端页面嵌入。
项目地址:https://bokeh.org/
安装 Bokeh
要开始使用 Bokeh,你只需通过 pip 或者 conda 安装即可。简洁明了的安装步骤也体现出了 Bokeh 用户友好的特质。
# 使用 pip 安装 pip install bokeh # 使用 conda 安装 conda install bokeh
具体的安装细节可以参考 官方安装指南[1]。
基本功能
让我们来看看 Bokeh 提供的一些基础功能。
创建图表
使用 Bokeh,我们可以快速地创建各种图表,比如条形图、折线图、散点图等等。下面是一个简单的折线图示例:
from bokeh.plotting import figure, show # 准备数据 x = [1, 2, 3, 4, 5] y = [6, 7, 2, 4, 5] # 创建图表 p = figure(title="simple line example", x_axis_label='x', y_axis_label='y') # 添加折线图 p.line(x, y, legend_label="Temp.", line_width=2) # 展示图表 show(p)
这段代码运行后,将打开一个页面展示简单的折线图。
交互式元素
Bokeh 可以添加滑动条、按钮等交互式元素, 允许用户在浏览器中与图表进行实时交互。
from bokeh.layouts import layout from bokeh.models import Div, RangeSlider, Spinner from bokeh.plotting import figure, show # 准备数据 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [4, 5, 5, 7, 2, 6, 4, 9, 1, 3] # 创建图表 p = figure(x_range=(1, 9), width=500, height=250) points = p.circle(x=x, y=y, size=30, fill_color="#21a7df") # 设置文本区域 div = Div( text=""" <p>Select the circle's size using this control element:</p> """, width=200, height=30, ) # 设置选项 spinner = Spinner( title="Circle size", low=0, high=60, step=5, value=points.glyph.size, width=200, ) spinner.js_link("value", points.glyph, "size") # 设置滑块 range_slider = RangeSlider( title="Adjust x-axis range", start=0, end=10, step=1, value=(p.x_range.start, p.x_range.end), ) range_slider.js_link("value", p.x_range, "start", attr_selector=0) range_slider.js_link("value", p.x_range, "end", attr_selector=1) # 创建样式 layout = layout( [ [div, spinner], [range_slider], [p], ], ) # 显示结果 show(layout)
高级功能
自定义样式
使用 Bokeh 主题,可以快速设置图表的样式,例如:
from bokeh.io import curdoc from bokeh.plotting import figure, show # 准备数据 x = [1, 2, 3, 4, 5] y = [4, 5, 5, 7, 2] # 添加主题 curdoc().theme = "dark_minimal" # 创建图表 p = figure(sizing_mode="stretch_width", max_width=500, height=250) # 添加元素 p.line(x, y) # 显示结果 show(p)
效果如下:
更多用法和功能请参考项目文档[2],文档中不仅有详细说明还有丰富的例子可供参考。
实践
为了更好地掌握 Bokeh,你可以尝试创建一个包含多种图表并带有交互元件的小仪表板。
记得分享你的作品和总结你在构建过程中的体会和所遇到的挑战。
以上就是“Bokeh —— 一个强大的可视化 Python 库”的全部内容,希望对你有所帮助。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
最后祝大家天天进步!!
上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。