在R中使用罗马斜体标签

3

I have a very simple script:

sens = read.table("Myfile.txt")
library(lattice)
contourplot(sens$V1 ~ sens$V2+sens$V3,data=d3,xlab="U",ylab=expression(kappa))

我一直在尝试让我的标签使用罗马斜体字体。我认为

font.lab=3, family="serif"

我希望能得到这样的字体效果,但无论我尝试什么(如font=3、font="italic"等),都无法改变字体。

有人能发现我的错误在哪吗? 谢谢。

3个回答

2

您可以尝试使用italic函数和Unicode符号。

require(lattice)
require(grid)
x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))

contourplot(z~x*y, grid, cuts = 1,
  colorkey = FALSE, region = TRUE,
  xlab=expression(italic(U)),
  ylab=expression(italic('\u03ba')))
grid.gedit("text", gp=gpar(fontfamily="serif"))
grid.gedit("xlab", gp=gpar(fontfamily="serif"))
grid.gedit("ylab", gp=gpar(fontfamily="serif"))

谢谢。这只是将我的文本变成斜体,但不是罗马斜体。 - SnowFrog
我还添加了一个使用grid包的方法。 - Triad sou.

2

设置主题将允许您全局更改这些内容。

font.settings <- list(font = 3, fontfamily = "serif")

my.theme <- list(par.xlab.text = font.settings,
                 par.ylab.text = font.settings,
                 axis.text = list(fontfamily = "serif"))

然后在contourplot语句中添加par.settings = my.theme
contourplot(sens$V1 ~ sens$V2+sens$V3,data=d3,xlab="U",ylab=expression(kappa), 
            par.settings = my.theme)

谢谢 Kevin。这在一定程度上解决了我的问题,因为现在我不仅可以在轴标题中使用罗马斜体字,而且图表上的标签(或刻度)也是罗马斜体字,这是我不想要的。 - SnowFrog

1

尽管Triad Sou的答案在R Graphics窗口上有效,但当我尝试使用以下命令以eps格式打印图表时,标签仍然是非衬线字体:

dev.print(device=postscript,file="Myfile.eps")

因为我的eps文件,我必须执行以下操作:

contourplot(sens$Tot ~ sens$U+sens$kappa,data=d3,
        xlab=expression(italic(U)),ylab=expression(italic(kappa)))
dev.print(device=postscript,file="Myfile.eps",family="serif")

后置脚本不支持字体族名为“serif”。请尝试使用PDF格式。任何一种解决方案都应该与PDF兼容。 - kmm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接