【问题标题】:Large space between y-ticks and y-labely-ticks 和 y-label 之间的大空间
【发布时间】:2014-12-03 00:34:26
【问题描述】:

在一个 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}

【问题讨论】:

    标签: r ggplot2 knitr tikz


    【解决方案1】:

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

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

    您是否尝试过使用:

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

    ______ 是你想要的表达式?

    【讨论】:

    • 不幸的是,我不能使用它,因为我想使用自定义 TeX 代码(例如问题中的 \num 处理以正确格式显示 1.2e5 会很烦人必须在 R 中复制它)
    • 我真的不太了解你想要什么......但你看到了吗? github.com/crowding/analysis/blob/master/occlusion.R
    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多