GitHub上,一份用Python做交互式图形的资源火了。这一工具名为Bokeh,官方介绍称,它能读取大型数据集或者流数据,以简单快速的方式为网页提供优美、高交互性能的图形。

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

GitHub上,一份用Python做交互式图形的资源火了。

这一工具名为Bokeh,官方介绍称,它能读取大型数据集或者流数据,以简单快速的方式为网页提供优美、高交互性能的图形。

比如,有人用它做出了这样的图:

有人做出了这样的图:

还有其他各种图:

有人用它做了图去TED上演讲:

 

“美观、实用”是不少用户给出的评价,甚至有人想让这份工具用起来更方便,尝试去汉化它的官方文档。

Bokeh能为像我这样的数据科学家提供什么?

我起初是作为一名商业智能从业者(BI professional)开始我的数据科学之旅的,随后,又逐渐学习了预测建模,数据科学和机器学习。我主要使用QlikView和Tableau进行数据可视化,用SAS和Python来做预测分析和数据分析。我几乎没有用过JavaScript。

因此,对于我之前所有的数据产品或想法,我只能要么将其外包要么通过网站线框图向别人展示,这两者都不适合创建快速原型。现在,有了Bokeh,我就可以继续使用Python,并且快速创建这些原型。

Bokeh的优势:

  • Bokeh允许你通过简单的指令就可以快速创建复杂的统计图,

  • Bokeh提供到各种媒体,如HTML,Notebook文档和服务器的输出

  • ·我们也可以将Bokeh可视化嵌入flask和django程序

  • Bokeh可以转换写在其它库(如matplotlib, seaborn和ggplot)中的可视化

  • ·Bokeh能灵活地将交互式应用、布局和不同样式选择用于可视化

综合Bokeh的优点及其面临的挑战,Bokeh是当前用于快速开发原型产品的理想工具。然而,如果你想在产品的环境下搞点新东西,D3.js可能仍然是你最好的选择。

Bokeh面临的挑战:

  • 与任何即将到来的开源库一样,Bokeh正在经历不断的变化和发展。所以,你今天写的代码可能将来并不能被完全再次使用。

  • 与D3.js相比,Bokeh的可视化选项相对较少。因此,短期内Bokeh无法挑战D3.js的霸主地位。

综合Bokeh的优点及其面临的挑战,Bokeh是当前用于快速开发原型产品的理想工具。然而,如果你想在产品的环境下搞点新东西,D3.js可能仍然是你最好的选择。

用Bokeh实现可视化

Bokeh提供了强大而灵活的功能,使其操作简单并高度定制化。它为用户提供了多个可视化界面,如下图所示:

  • 图表(Charts):一个高级接口(high-level interface),用以简单快速地建立复杂的统计图表。

  • 绘图(Plotting):一个中级接口(intermediate-level interface),以构建各种视觉符号为核心。

  • 模块(Models):一个低级接口(low-level interface),为应用程序开发人员提供最大的灵活性。

本文中,我们仅涉及前两个接口,图表(Charts)和绘图(Plotting)。

图表

如上所述,它是一个高级接口,用于通过标准的可视化方式呈现信息。这些方式包括箱形图、柱状图、面积图、热图、甜甜圈图和许多其它图形。你只需输入数据框(data frames)、numpy数组或字典就可以生成这些图。

让我们来看看创建一个图表的通用方法:

1. 导入库和函数/方法

2. 准备数据

3. 设置输出模式(Notebook文档、Web浏览器或服务器)

4. 创建图表并选择图表的样式(如果需要)

5. 可视化图表

为了更好地理解这些步骤,让我用下面的例子来演示一下:

图表范例-1:使用Bokeh创建一个柱状图并在Web浏览器上显示

我们将遵循上述列出的步骤来创建一个图表:

#导入库函数from bokeh.charts import Bar, output_file, show#在电脑屏幕上使用 output_notebook来可视化数据#准备数据 (模拟数据)data = {"y": [1, 2, 3, 4, 5]}#输出到Line.HTMLoutput_file("lines.html", ) #创建一个新的含有标题和轴标签的窗口在线窗口p = Bar(data, , xlabel='x', ylabel='values', width=400, height=400)#显示结果show(p)

在上面的图表中,你可以看到顶部的工具选项(缩放、调整大小、重置、旋转缩放),这些工具可以帮助你与图表进行互动。同时,你也可以看到多个图表选项(图例、X轴名标注、Y轴名标注、坐标网格线、宽度、高度等)和各种图表的范例。

2019年下半年,人工智能领域会产生怎样的变化?

你是如何学习python之web开发的(2019.6.23更新)

Python正在崛起,在TIOBE编程语言排行榜创下新高

来都来了,点个在看再走吧~~~

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐