В документе Knitr я использую специальную функцию метки, которая выводит некоторый код LaTeX (здесь бесполезно, просто чтобы проиллюстрировать проблему). В нормальных сюжетах все в порядке: R умеет правильно угадывать метрики выхода и оставляет разумное пространство (средний сюжет). Но при использовании граней эти метрики просто используют простую строку, а не интерпретируют ее как LaTeX (первый график), как и следовало ожидать от устройства вывода не LaTeX (последний график).Большое пространство между y-тиками и y-меткой
Как я могу убедить 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}
К сожалению, я не могу использовать это, потому что я хотел бы использовать пользовательский TeX-код (например, '\ num' в вопросе, который, например, обрабатывает отображение« 1.2e5 »в правильном формате, было бы досадно, что нужно реплицировать что в R) – pascal
Я действительно не очень понимаю, о чем вы хотите ... Бу вы видели это? https://github.com/crowding/analysis/blob/master/occlusion.R –