#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.