我正在学习一些与数据科学相关的主题,哦,天哪,这是一个各种不同的库的丛林,适用于一切????

因为一些原因,我 Select 了Lets-plot,它有一个很好的Kotlin APIKotlin kernel for Jupyter notebooks组合在一起

总体而言,事情进展得很好.我在网上看到的大多数教程和文档使用不同的库进行绘制(例如SeabornMatplotlibPlotly),因此大多数情况下我必须阅读Lets-Plot-Kotlin reference并try /出错,直到找到与我的图形相同的代码

目前,我正在try 绘制两个值之间的差异分布图.总体而言,这看起来相当不错.我可以做一些像这样的事情

(letsPlot(df)
    + geomHistogram { x = "some-column" }
).show()

which gives a nice graph result of geomHistogram

这将是有趣的看到密度估计器以及,geomDensity救援!

(letsPlot(df)
    + geomDensity(color = "red") { x = "some-column" }
).show()

result of geomDensity

好的!现在让我们一起来看他们俩

(letsPlot(df)
    + geomDensity(color = "red") { x = "some-column" }
    + geomHistogram() { x = "some-column" }
).show()

result of both graphs

如你所见,底部有一条小红线(geomDensity!).这里的问题(我想说)是这两个层使用相同的Y标度.直方图使用0-20的值和0-0.02的密度,所以当绘制在一起时,它只是底部的一条线

有没有办法在同一个图中添加使用自己比例的几个图层?我读过some blogposts篇文章,声称你不应该这样做(似乎是pretty much accepted by the community篇).

我的目标是通过以下方式实现类似于您在Seborn所能做的事情

plt.figure(figsize=(10,4),dpi=200)
sns.histplot(data=df,x='some_column',kde=True,bins=25)

graph with seaborn

(是的,我知道我在没有配置垃圾箱的情况下拍摄了LETS情节截图.无关紧要,我会说‘_(ツ)_/’)

也许我只是带着一种我不应该的心态来处理这个问题?正如前面提到的,我还在学习,所以每一种 Select 都会受到高度欢迎,????

只是,请不要使用"切换到Python"这个词.我在探索,我更喜欢一次只研究一个主题

推荐答案

为了使直方图层和密度层共享相同的y比例,您需要映射变量"..密度.."将直方图层中的"y"美观(默认直方图图为"..count.."改成"y").

您可以在笔记本的单元格[4]中找到它的一个例子:https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/distributions.ipynb

另外,let-Plot Kotlin API参考中的许多页面都配备了演示笔记本上的链接,在"Examples"部分:geomHistogram().

当然,你也可以在Rggplot2包上找到很多在线信息,这在很大程度上也适用于LETS-PLOT.例如:Histogram with kernel density estimation.

最后:),调用show()不是必须的--如果Plot表达式是单元格中的最后一个,Jupyter Kotlin内核将自动呈现Plot,这通常是这样的.

Kotlin相关问答推荐

最好的方法来创建一个 map 在kotlin从两个列表

如何将消费者放入 Kotlin 的 map 中?

列表在 android WebView 中没有正确迭代

Criteria Api 中的 Kotlin 泛型

为什么 Kotlin 的 null 安全性不能与局部变量初始化器一起正常工作?

在 Kotlin 中使用 @Parcelize 注释时如何忽略字段

如何将超过 2 个 api 调用的结果与 Coroutines Flow 结合起来?

如何退出 Kotlinc 命令行编译器

androidx.core:core-ktx:1.0.0 小部件包丢失

如何将命令行参数传递给Gradle Kotlin DSL

Kotlin中的测试无法访问受保护(protected)的方法

如何捕获传递给模拟函数的参数并返回它?

如何为 Java 调用者声明返回类型为void的 Kotlin Lambda?

在android的默认浏览器 Select 列表中添加我的浏览器?

Kotlin扩展函数与成员函数?

将字符串转换为HashMap的最简单方法

Kotlin内联属性的用例是什么?

尾随 lambda 语法(Kotlin)的目的是什么?

你如何在 Kotlin 中注释 Pair 参数?

Kotlin:在何时使用枚举