Lets-Plot-Kotlin

尽管我们可以从指标,检测和基本统计中了解有关数据的更多信息。但作为人类,当我们亲眼看到趋势和图案时,我们会更快去理解它。如果你希望只需一小会便能让数据可视化,但不知道如通过Kotlin操作,则这篇博文非常适合你!

今天,我想与你聊聊Kotlin的Lets-Plot,这是一个完全通过Kotlin编写的开源数据统计图形绘制库。你将了解到它的API,可以用它构建的图表种类以及这个库独特的地方。让我们从API开始吧。

类ggplot的API

Lets Plot Kotlin API是基于分层图像原则构建的。如果你曾经在R语言上使用过ggplot2包,你可能会g感到熟悉。

“这种语法[…]是由一组独立的组件通过很多种不同方式构成的。这使得[它]非常强大,因为不局限于预先定义好的图形,而是可以根据需求准确定制新的图形。”Hadley Wickham, ggplot2: Elegant Graphics for Data Analysis

如果你之前使用过ggplot2,应该认得这种样式的API:

Lets-Plot

如果不清楚,则在这里让我们了解究竟发生了什么吧。在Lets-Plot中,一个plot至少由一个图层表示。图层负责绘制在”canvas”上的对象,并包含以下元素:

  • 数据——所有图层共用或逐层指定的数据子集。一个plot可以合并多个不同的数据集(每层一个)。
  • 美学映射——描述如何将数据集的变量映射到图层的可视属性上,例如颜色,形状,大小或位置。
  • 几何对象——代表特定类型图表的几何对象。
  • 统计转换——对原始输入的数据计算某种统计摘要。例如,bin统计量用于直方图,smooth用于回归线。
  • 位置调整——一种用于计算几何最终坐标的方法。用于构建同一几何对象的变体或避免过度绘图。

要将所有这些部分组合在一起,你需要使用下述的简易公式:

你可以通过阅读入门指南来了解有关Lets-Plot基础的更多信息,并更好地了解各个构建块的功能。

自定义plots

开箱即用的Lets-Plot支持多种可视化类型——直方图,箱形图,散布图,线图,轮廓图,地图等等!

所有plot都是灵活的且可高度定制的,但是库在强大的可定制型和易用性之间设法保持平衡。 你可以从简单但有用的可视化开始,例如数据分发:

Histogram plot

你拥有创建复杂但细致的可视化所需的全部工具,例如此图,展示了Iris数据集图表的自定义提示信息:

Customisable tooltips

查看这些教程,浏览可用的Lets-Plot可视化效果,并学习如何使用:

与Jupyter Notebook的Kotlin内核集成

你可能已经从截图中注意到,这些绘图是在Jupyter Notebook中创建的。 实际上,Lets-Plot与Jutter Notebook的Kotlin内核集成到一起了。 如果你已安装Kotlin内核(请参阅有关操作方法的说明),要开始绘图则仅仅只需在notebook中加入下列像魔法一样的代码行:

仅此而已! Plot 速现 🙂 Kotlin noteboks还被JetBrains Datalore的支持,JetBrains Datalore是具有智能编码提示的在线数据科学笔记。 了解使用Lets-Plot的Datalore notebook示例吧。

Lets-Plot的内在

最后,我想与大家分享一下Lets-Plot的实现,因为它是独一无二的多平台库。 由于Kotlin独特的多平台性质,因此绘图功能只需在Kotlin中一次编写,便可打包为JavaScript库,JVM库和native Python扩展

Lets-Plot Internals

无论你钟爱哪种环境,都可以通过Lets-Plot使用相同的功能和API让数据可视化!

Kotlin API构建在JVM jar之上,但是,你也可以独立使用JVM jar。 例如,你可以通过JavaFX或Apache Batik SVG工具包将plot嵌入到JVM应用程序中实现图形渲染。

Lets-Plot确实是Kotlin多平台潜力的绝佳体现,并且是满足你数据可视化需求的出色工具。 希望这篇文章能激发你的兴趣,同时尝试一下!

此条目发表在官方分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注