Большое пространство между галочками и меткой Y

В документе Knitr я использую пользовательскую функцию меток, которая выводит некоторый код LaTeX (здесь это бесполезно, просто для иллюстрации проблемы). На обычных графиках все в порядке: R удается правильно угадать метрики вывода и оставляет разумное пространство (средний график). Но при использовании фасетов эти метрики просто используют простую строку, а не интерпретируют ее как LaTeX (первый график), как можно было бы ожидать от устройства вывода, отличного от LaTeX (последний график).

Как я могу убедить ggplot всегда интерпретировать мою метку как LaTeX и использовать интеллектуальные метрики?

\documentclass{beamer}
\setbeamertemplate{navigation symbols}{}
\usepackage{siunitx}
\begin{document}
\begin{frame}
<<dev='tikz', echo=F, fig.height=1.5>>=
library(ggplot2)

mylabel <- function() {
  function(xs) { sprintf("\\ensuremath{\\num{%g}}",xs) }
}
data <- data.frame(x=c(1,10), y=c(1,10), kind=c("a","a"))

ggplot(data,aes(x=x,y=y)) + geom_point() +
  scale_y_continuous(labels=mylabel()) +
  facet_grid(~ kind)
@

<<dev='tikz', echo=F, fig.height=1.5>>=
ggplot(data,aes(x=x,y=y)) + geom_point() +
  scale_y_continuous(labels=mylabel())
@

<<echo=F, fig.height=1.5>>=
ggplot(data,aes(x=x,y=y)) + geom_point() +
  scale_y_continuous(labels=mylabel())
@
\end{frame}
\end{document}

введите здесь описание изображения


person pascal    schedule 03.12.2014    source источник


Ответы (1)


Я правда не знаю, поможет ли это...

но вы видели этот пост? Как использовать индексы в легендах ggplot2 [R]

Вы пытались использовать:

scale_y_continuous(labels=c(expression(paste(_________)), expression(paste(_________))))

где ______ это выражение, которое вы хотите?

person Rodrigo de Alexandre    schedule 03.12.2014
comment
К сожалению, я не могу использовать это, потому что я хотел бы использовать собственный код TeX (например, \num в вопросе, который, например, обрабатывает отображение 1.2e5 в правильном формате, было бы раздражающим, если бы пришлось копировать это в R) - person pascal; 03.12.2014
comment
Я действительно не очень понимаю, чего вы хотите... но вы видели это? github.com/crowding/analysis/blob/master/occlusion.R - person Rodrigo de Alexandre; 05.12.2014