回复 第2楼 的 ming_uld:谢谢,这个帖子仔细研究过。利用pdf+family="GB1"可以解决很多问题,但是坐标轴数值及部分英文字体往往也会打印为GB1字体,带小数点时非常难看。利用Cairo库base包的绘图似乎没有问题。但有两种情况不理想:
1、lattice绘图中文显示失败,如spplot函数。
<br />
library(lattice)<br />
library(sp)<br />
data(meuse.grid)<br />
gridded(meuse.grid)=~x+y<br />
meuse.grid$测试 = factor(sample(letters[1:5], 3103, replace=TRUE),levels=letters[1:10])<br />
meuse.grid$test = factor(sample(letters[6:10], 3103, replace=TRUE),levels=letters[1:10])<br />
p=spplot(meuse.grid, c("测试","test"),main="测试")<br />
CairoPDF("lattice_chinese_test.pdf")<br />
par(family = "simsun")<br />
print(p)<br />
dev.off()<br />
2、ggplot2并不乐观,geom_text字体添加了family选项后可以显示出来,但明显偏粗,看起来效果不好。</p>
<br />
require(ggplot2)<br />
require(Cairo)<br />
df=data.frame(x=1:100,y=sample(1:10))<br />
p=qplot(data=df,x=x,y=y,main="天空")+theme_bw(base_family="serif")+geom_text(x=33,y=5,label="测试",family="serif")<br />
CairoPDF("ggplot_chinese_test.pdf")<br />
print(p)<br />
dev.off()<br />
</p>
PS:记得偶尔利用grDevice的pdf函数生成的pdf是可以粘贴到word中的。
这里主要考虑的是R中满足杂志出版要求的矢量图中文显示解决办法。(PNG等格式不作讨论)