情节标题中的斜体希腊字母/乳胶式数学

时间:2011-11-18 22:44:17

标签: r unicode utf-8 character-encoding ggplot2

我想在R中的情节标题中创建乳胶式数学。plotmath tools有一个有用但有限的表达子集,它们可以显示,并使用非乳胶语法和样式。

例如,我想在情节标题中打印等式$ \ mathrm {d} \ mathbf {x} = a [\ theta - \ mathbf {x}] \ mathrm {d} t $,并仍然评估某些变量的价值。我所拥有的最佳解决方案是非常繁琐的:

lambda <- 4
plot(1:10,1:10)

mtext(bquote(paste(d*bolditalic(x)[italic(t)] == alpha*(theta - bolditalic(x)[italic(t)] )*d*italic(t) +  .(lambda) * d * italic(B)[italic(t)] )), line=2.25,cex=2) 

require(ggplot2)
qplot(1:10, 1:10) + opts(title=bquote(paste(d*bolditalic(x)[italic(t)] == alpha*(theta - bolditalic(x)[italic(t)] )*d*italic(t) +  .(lambda) * d * italic(B)[italic(t)] )), line=2.25,cex=2)

This question几乎解决了这个问题,但是我放弃了bquote显示变量数值的能力(在我的例子中是lambda)。有没有办法结合这些,所以我可以有斜体希腊字母(变量的标准格式,例如由tex完成)并评估具体值?

有没有更好的方法可以简单地为方程编写tex语法并将它们添加到我的图形中?

2 个答案:

答案 0 :(得分:12)

您可能需要查看tikzDevice包(或首先查看its vignette),这提供了一种在R图形中编写LaTeX数学的自然方法。

我也有a simple example here

这是另一个例子:

library(tikzDevice)
library(ggplot2)
tikz('math.tex', standAlone = TRUE, width = 4, height = 4)
qplot(1:10, 1:10, 
  main = '$\\mathrm{d} \\mathbf{x} = a [\\theta - \\mathbf{x}] \\mathrm{d} t$')
dev.off()
如果你运行pdflatex math.tex

会生成这个

latex math in ggplot2

答案 1 :(得分:4)

你应该编辑你的问题,而不是放置子评论(我会看到我能对盒子做些什么。)。我有时发现bquote只能达到如此之深,你需要使用substitute。这有效:

 lambda <- 4
 plot(1:10,1:10)

mtext(substitute(paste(d*bolditalic(x)[italic(t)] == 
                       alpha*group("[", (theta - bolditalic(x)[italic(t)] )*d*italic(t) + 
                        lambda, "]") * d * italic(B)[italic(t)] ), list(lambda=lambda)), 
      line=2.25,cex=2)

它也适用于ggplot,标题放置看起来好多了:

 qplot(1:10, 1:10) + opts(title=substitute(paste(d*bolditalic(x)[italic(t)] == 
                        alpha*(theta - bolditalic(x)[italic(t)] )*d*italic(t) + 
                         lambda * d * italic(B)[italic(t)] ), list(lambda=lambda)), 
                       line=2.25,cex=2)

enter image description here

“d”是“正方形”,至少在我在网上提到一组Latex示例后理解你的意思时:

http://www.personal.ceu.hu/tex/cookbook.html

(我以为你想要http://en.wikipedia.org/wiki/D%27Alembert_operator并且还无法找到它。)