y-ticks和y-label之间的空间很大

时间:2014-12-03 00:34:26

标签: r ggplot2 knitr tikz

在Knitr文档中,我使用自定义标签功能输出一些LaTeX代码(这里没用,只是为了说明问题)。在普通图中,一切都很好:R设法正确猜测输出的度量并留下合理的空间(中间图)。但是当使用facet时,这些指标只是使用普通字符串,而不是将其解释为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}

enter image description here

1 个答案:

答案 0 :(得分:0)

我真的不知道这是否有帮助...

但你看过这篇文章吗? How to use subscripts in ggplot2 legends [R]

你尝试过使用:

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

其中______是您想要的表达式吗?