python - 在 R 中打印 Python 生成的图
问题描述
我正在执行 HDBSCAN,并正在使用hdbscan
R 中的 python 模块执行分析。我有以下代码:
library(reticulate)
hdb <- import("hdbscan") # Import hdbscan Python library
# Create dummy data. My actual data set is an already cleaned data frame.
dat <- data.frame(id=1:100, a = rbinom(100, 1, .4), b = rbinom(100, 1, .8), c = rbinom(100, 1, .6), d = rbinom(100, 1, .2))
datMat <- as.matrix(dat) # Convert to matrix so it correctly converts to a 2d array
clusterer = hdb$HDBSCAN(metric='jaccard') # Start clusterer with Jaccard distance metric
clusterer$fit(datMat) # Fit the data
接下来,我想看看浓缩的树状图。用于此的 Python 代码将是:
clusterer.condensed_tree_.plot()
翻译成R:
clusterer$condensed_tree_$plot()
该命令的输出是:
AxesSubplot(0.125,0.11;0.31744x0.77)
我可以将所有这些都放在一个 RMarkdown 文件中,使用原始 python,我会得到我想要的情节。但是,这仅在编织整个文件时有效,这可能需要一些时间。特别是当我目前正在通过 HDBSCAN 的不同参数设置时,如果有一种方法可以绘制浓缩树(和其他诊断图)而不必编织整个 RMarkdown 文件,那就太好了。
有人知道我是否/如何在不使用 RMarkdown 的情况下在 R 中绘制 Python 生成的图吗?
RMarkdown 文件示例:
\```{r}
dat <- data.frame(id=1:100, a = rbinom(100, 1, .4), b = rbinom(100, 1, .8), c = rbinom(100, 1, .6), d = rbinom(100, 1, .2))
datMat <- as.matrix(dat)
\```
\```{python}
import hdbscan
clusterer = hdbscan.HDBSCAN(metric='jaccard') # Start clusterer with Jaccard distance metric
clusterer.fit(r.datMat) # Fit the data
clusterer.condensed_tree_.plot()
\```
解决方案
推荐阅读
- java - 如何使用 Java 在 MySQL 表中仅搜索一条特定记录
- c# - C# webjob convert.todouble 在 azure 上工作错误
- c# - 为 json 创建和填充数据
- java - Jhipster Docker prod build 在执行 JUnit 测试时抛出“java.lang.OutOfMemoryError:GC 开销限制超出”
- combinations - 31 是从 1 到 18 的 4 个不同数字的总和
- php - Laravel LogServiceProvider 不会让请求通过
- java - 检查 firebase 数据库中的 url
- javascript - 在 OpenCV 中为 python 和 js 添加新的函数签名
- swift - 如何在 ARKit 中为饼图制作动画 - Swift
- react-native - 如何在 TabBar React Native 中启动默认屏幕