3

我有一个非常简单的脚本:

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"...) 根本不会改变字体。

谁能发现我做错了什么?谢谢。

4

3 回答 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"))
于 2011-05-12T01:35:01.887 回答
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"))

然后添加par.settings = my.theme到等高线图语句

contourplot(sens$V1 ~ sens$V2+sens$V3,data=d3,xlab="U",ylab=expression(kappa), 
            par.settings = my.theme)
于 2011-05-12T01:45:54.240 回答
1

尽管 Triad Sou 的答案在 R 图形窗口上有效,但当我尝试使用以下命令以 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")
于 2011-05-13T20:26:11.673 回答