проблема при экспорте записной книжки в html на Jupyter с ядром R

Следующий код отлично работает при написании ноутбука ipython, оснащенного ядром R. К сожалению, экспорт в html не удается для второй гистограммы (как со встроенной опцией jupyter, так и с ручным использованием nbconvert).

library(NLP)
library(tm)

# here I used the EBook of Ulysses, by James Joyce, but any text file can fit
# the text is available here: https://www.gutenberg.org/cache/epub/4300/pg4300.txt
book <- readLines("pg4300.txt", encoding="UTF-8")
corpus <- Corpus(VectorSource(book))
corpus <- tm_map(corpus, content_transformer(tolower))
corpus <- tm_map(corpus, removeNumbers)
corpus <- tm_map(corpus, removePunctuation)
dtm <- TermDocumentMatrix(corpus)
m <- as.matrix(dtm)

freq <- rowSums(m)
freq.sorted <- sort(freq, decreasing=TRUE)

# first barplot with stop words (ok for both notebook and export)
barplot(freq.sorted[1:50], xlab="Word", ylab="Frequency", las=2)

corpus.sw <- tm_map(corpus, removeWords, stopwords('english'))
dtm.sw <- TermDocumentMatrix(corpus.sw)
m.sw <- as.matrix(dtm.sw)
freq.sw <- rowSums(m.sw)
freq.sw.sorted <- sort(freq.sw, decreasing=TRUE)

# second barplot without stop words (ok on ipython notebook but fail when exporting)
barplot(freq.sw.sorted[1:50], xlab="Word", ylab="Frequency", las=2)

Что действительно странно, так это то, что первая гистограмма экспортируется хорошо, а вторая нет, тогда как процесс точно такой же (показ 50 верхних слов).

Вот моя конфигурация:

  • macosx 10.11.2 Эль-Капитан
  • Юпитер 4.0.6
  • ипитон 4.0.1
  • Р версия 3.2.2

Спасибо,

Жюльен


person Julien Velcin    schedule 06.03.2016    source источник
comment
Я могу экспортировать это, но на втором графике искажены метки x. Я думаю, причина в том, что nbconvert не использует iframes для графиков svg, как это делается в самом блокноте.   -  person Jan Katins    schedule 13.04.2016
comment
Эта проблема теперь отслеживается на github.com/jupyter/nbconvert/issues/290.   -  person Jan Katins    schedule 13.04.2016


Ответы (1)


Поскольку это, похоже, вызвано тем, как графики SVG встроены в HTML-страницу, вы вероятно, можно обойти эту проблему, удалив графики SVG из параметров построения:

options(jupyter.plot_mimetypes = c("text/plain", "image/png" )) # no more svg...
person Jan Katins    schedule 13.04.2016