Невозможно связать с html_output, когда dev = 'svg' и в лабораториях есть выражение - PullRequest
1 голос
/ 28 апреля 2019

Я генерирую html_output из файла .Rmd в R. В частности, я хочу, чтобы выходные ggplot2 изображения были сохранены как файлы .svg, но получаю в результате ошибку:

Quitting from lines 28-47 (reprex.Rmd) 
Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y,  : 
  Metric information not available for this family/device
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics
Execution halted

Я думаю, что я определил, где проблема возникает в коде (см. Закомментированную строку из кода ниже), но я не уверен, что с этим делать, кроме как отправить отчет об ошибке людям Rmarkdown. Я думаю, что происходит, что выражение labs(x = expression(T[i]~-~T[A]~"(°C)")) вызывает ошибку из-за подписки. То есть, если я удаляю эту строку кода или изменяю ее на labs(x = "Ti -Ta (°C)), ошибка больше не существует.

Вот воспроизводимый пример, который создает ошибку:

---
title: "Reprex"
output:
  html_document
---

```{r}
knitr::opts_chunk$set(
  echo = TRUE,
  dev = "svg"
  )

library(dplyr)
library(ggplot2)

data("mtcars")

#Inset
inset <- mtcars %>%
  ggplot(aes(hp, mpg, color = cyl)) +
  geom_point()
inset <- ggplotGrob(inset)

#Main
mtcars %>%
  ggplot(aes(mpg, wt)) +
  geom_point() +
  labs(x = expression(T[i]~-~T[A]~"(°C)")) + #This seems to be the problem spot.
  annotation_custom(inset, xmin = 22.5, xmax = 34.5, ymin = 3.5, ymax = 5.5)
```

Кто-нибудь сталкивался с этой проблемой? Я использую R v3.5.3, и все мои пакеты соответствуют этой версии.

...