我想补充LaTeX排版到地块元件R(例如:标题,轴标签,注释等)的使用任一组合base/lattice或与ggplot2.
问题:
LaTeX使用这些包进入图表,如果是这样,它是如何完成的? 例如,通过这里讨论的包进行Python matplotlib编译:http://www.scipy.org/Cookbook/Matplotlib/UsingTexLaTeXtext.usetex
是否有类似的过程可以生成这样的图R?
我在尝试着
在gglot图例标签内.
我已经尝试了几种方法,但我似乎无法将我读到的所有技巧结合起来.
我可以通过插入\n标签来获得换行符,但这似乎不适用于希腊字母,而不适用于图例标签.或者我可以在基础图中通过组合mtext()和bquote()插入一段文本(EDIT)来设置换行符和希腊字母,但正如Gregor在评论部分中指出的那样,这不起作用ggplot.下面我结合list使用paste0()to将文本传递给图例标签:问题是我找不到插入希腊字母的方法,例如gamma.
感谢你的建议.
这是我的一次尝试的MWE (编辑:改进的MWE):
label1.line1 <- "Not much to say about this one"
label2.line1 <- "blabla blabla, blabla blabla, blee blee blee (bling, bling, bling),"
label2.line2 <- paste0("(", "1900-2014: g = 1.50%, gamma = 2.75%, and r = 2.30%",")")
label3.line1 <- "blabla blabla, blabla blabla, blee blee blee (bling, bling, bling),"
label3.line2 <- paste0("(", "1900-2014: g = 2.50%, …Run Code Online (Sandbox Code Playgroud) 我尝试了以下方法,但它对我不起作用:
a <- ggplot()
a <- a + geom_point(aes(x=seq(0,1,0.1), y=seq(0,1,0.1)))
a <- a + annotate("text", x=0.5, y=0.3, label="myplot")
a <- a + annotate("text", x=0.5,y=0.2,label=expression(%+-%))
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下内容,如何使用latex来注释()ggplot并没有运气:
a <- a + annotate("text", x=0.5, y=0.1, label="%+-%", parse=TRUE)
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
a <- a + annotate("text", x=0.5, y=0.1, label="\pm", parse=TRUE)
Run Code Online (Sandbox Code Playgroud) 给定一个样本数据集:
size = 10000
dist = seq(0, 10, length.out=size)
cohort.kv = list(A=3,B=40,C=44)
cohort = sample(names(cohort.kv), size, TRUE)
cohort.v = mapply(function(v) cohort.kv[[v]], cohort)
across.kv = list(ONE=1,TWO=2,THREE=3)
across = sample(names(across.kv), size, TRUE)
across.v = mapply(function(v) across.kv[[v]], across)
along.kv = list(FIVE=5, EIGHT=8, ELEVEN=11)
along = sample(names(along.kv), size, TRUE)
along.v = mapply(function(v) along.kv[[v]], along)
df = data.frame(
dist=dist, cohort=cohort, across=across, along=along,
value=sin(dist/across.v+cohort.v)*along.v
)
df$across = factor(df$across, levels=names(across.kv))
df$along = factor(df$along, levels=names(along.kv))
Run Code Online (Sandbox Code Playgroud)
我正在尝试将乳胶添加到刻面标签中。这个答案解释了如何将乳胶添加到 ggplot 标签。下面的代码在轴标签中生成一个带有乳胶的分面 ggplot,并修改了分面标签。
library(ggplot2)
# install.packages("latex2exp", dependencies=TRUE)
library(latex2exp)
(
ggplot(df, …Run Code Online (Sandbox Code Playgroud) 是否可以将R图中的希腊字母斜体化?理想情况下,以下代码将导致斜体希腊字母:
plot(1:10, 1:10, type="n")
text(8,4, expression(italic(gamma)~":"~italic(sigma))) #doesn't work...
text(2,2,expression(italic("this")~":"~italic("that")))
Run Code Online (Sandbox Code Playgroud)
plotmath文档非常清楚地指出,italic()不适用于希腊字母,但是,他们确实说带有\ uxxxxx或\ Uxxxxxxxx的UTF-8可以用于创建斜体希腊符号,但是我无法获得此符号去工作。是否有人对如何使用utf或其他方式提出建议?
可能有一些Tex解决方案,但是我没有成功获取基本的Tex示例在我的系统上工作。我对他们开放,但我可能会问一些后续问题。
下面的代码几乎可以显示出我想要的内容,但并不完全。
windows(family='serif') #name for Times in default windows gr device lib
plot(1:10, 1:10, type="n")
text(5,9, expression(italic(?)~":"~italic(?))) #1
text(5,7, paste("\u03B2",":","\u03B1",sep=" "), font=3) #2
text(5,5, expression(italic(beta)~":"~italic(alpha))) #3
text(5,3, expression(italic("\u03B2")~":"~italic("\u03B1"))) #4
text(5,1.5, expression(italic("\u03B2")~plain(":")~italic("\u03B1"))) #5
Run Code Online (Sandbox Code Playgroud)

我需要斜体符号和非斜体“:”。在顶部(#1)中,斜体符号看起来很奇怪。在第二个中,斜体符号看起来正确,但是“:”是斜体。是的,期刊编辑已经抓住了这一点。
操作系统:Windows 7 x64