Надписи римским курсивом в r

#r #plot #lattice

#r #график #решетка

Вопрос:

У меня есть очень простой скрипт:

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

Я пытался вывести свои метки шрифтом roman italic. Я думал

 font.lab=3, family="serif"
  

должно дать мне именно это, но что бы я ни пробовал (font = 3,font =»italic» …), шрифт вообще не меняется.

Кто-нибудь может определить, что я делаю не так? Спасибо.

Ответ №1:

Вы могли бы попробовать italic функцию и символы Юникода.

 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"))
  

Комментарии:

1. Спасибо. При этом мой текст выделяется только курсивом, но не римским курсивом.

2. Я также добавил метод, использующий пакет grid.

Ответ №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

 contourplot(sens$V1 ~ sens$V2 sens$V3,data=d3,xlab="U",ylab=expression(kappa), 
            par.settings = my.theme)
  

Комментарии:

1. Спасибо, Кевин. Это частично решает мою проблему, потому что теперь я не только получаю названия осей римским курсивом, но и метки (или масштаб) на моем графике римским курсивом, чего я не хочу.

Ответ №3:

Хотя ответ 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")
  

Комментарии:

1. Postscript не знает family = «serif». Попробуйте PDF. Любое решение должно работать с PDF.