Печать Python-генерируемого графика в R - PullRequest
1 голос
/ 02 апреля 2019

Я работаю над выполнением HDBSCAN и выполняю анализ с использованием модуля Python hdbscan в R. У меня есть следующий код:

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.

Кто-нибудь знает, если / как я могу построить сгенерированный Python график в R без использования RMarkdown?

Пример файла 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()
\```
...