8.2.3.2 使用 Lets-Plot for Kotlin 进行数据可视化
4 分钟阅读
8.2.3.2 使用 Lets-Plot for Kotlin 进行数据可视化
Lets-Plot for Kotlin(LPK)是一个多平台绘图库,把 R 的 ggplot2 库移植到了 Kotlin。LPK 把功能丰富的 ggplot2 API 带入 Kotlin 生态,非常适合需要复杂数据可视化能力的科学家和统计学家。
LPK 面向多种平台,包括 Kotlin/JS、JVM 的 Swing、JavaFX 和 Compose Multiplatform。此外,LPK 还能与 IntelliJ、DataGrip、DataSpell 和 PyCharm 无缝集成。

本教程演示如何在 IntelliJ IDEA 中使用 LPK 和 Kotlin DataFrame 库创建不同类型的图表。
开始之前
注意: 从 IntelliJ IDEA 2026.2 开始,Kotlin Notebook 将不再随 IDE 一起提供,也不再由 JetBrains 官方支持。源代码仍可在 GitHub 上获取。更多信息请参阅博客文章。
创建一个新的 Kotlin Notebook 来使用 Lets-Plot:
- 选择 File | New | Kotlin Notebook。
- 在你的笔记本中运行以下命令,导入 LPK 和 Kotlin DataFrame 库:
| |
要学习本教程,你也可以把 DataFrame 用作 Gradle 或 Maven 依赖。
准备数据
我们来创建一个 DataFrame,存储柏林、马德里和加拉加斯三座城市的模拟月平均气温数值。
使用 Kotlin DataFrame 库中的 dataFrameOf() 函数生成该 DataFrame。粘贴并运行以下代码片段:
| |
你可以看到该 DataFrame 有三列:Month、Temperature 和 City。DataFrame 的前四行包含柏林 1 月到 4 月的气温记录:

要使用 LPK 库绘图,你需要把数据(df)转换为以键值对形式存储数据的 Map 类型。你可以使用 .toMap() 函数轻松把 DataFrame 转换为 Map:
| |
创建散点图
我们来用 LPK 库创建一个散点图。
把数据转换为 Map 格式之后,使用 LPK 库中的 geomPoint() 函数生成散点图。你可以指定 X 轴和 Y 轴的值,以及定义类别及其颜色。此外,你还可以按自己的需要自定义图表尺寸和点的形状:
| |
结果如下:
创建箱线图
我们用箱线图来可视化这些数据。使用 LPK 库中的 geomBoxplot() 函数生成图表,并用 scaleFillManual() 函数自定义颜色:
| |
结果如下:
创建二维密度图
现在,我们创建一个二维密度图,来可视化一些随机数据的分布和集中程度。
为二维密度图准备数据
- 导入用于处理数据和生成图表的依赖:
| |
- 粘贴并运行以下代码片段,创建二维数据点集合:
| |
在上面的代码中,xy0、xy1 和 xy2 变量存储的是由二维(x, y)数据点组成的数组。
- 把数据转换为
Map类型:
| |
生成二维密度图
使用上一步得到的 Map 创建二维密度图(geomDensity2D),并在背景中加入散点图(geomPoint),以便更好地可视化数据点和离群值。你可以使用 scaleColorGradient() 函数自定义颜色刻度:
| |
结果如下:
接下来做什么
- 在 Lets-Plot for Kotlin 文档中探索更多图表示例。
- 查阅 Lets-Plot for Kotlin 的 API 参考。
- 在 Kotlin DataFrame 和 Kandy 库文档中了解如何使用 Kotlin 转换和可视化数据。