保存时这些中文字就没有办法显示,英文没问题。
请教达人如何解决这个问题?谢谢!
坛友DM小菜鸟 回答:
一、简捷方法:
直接在PDF()中设定字体,添加family="GB1"参数;
其优点是方便快捷;缺点是字体单一,只有标准宋体。
如果想进一步了解PDF的字体库可通过names(pdfFonts())命令查看。
演示一下:
- student19<-read.table("student19.txt",header=T)
- attach(student19)
- pdf("char_3.7_1.pdf",family="GB1")
- plot(身高,体重)
- dev.off()
二、高级方法:
调用Cairo程序包,使用CairoPDF()函数画图
- library(Cairo)
- CairoPDF("char_3.7_2.pdf")
- plot(身高,体重,family=”STKaiti”) #
- STKaiti 表示字体为华文行楷;
- dev.off()
当然,如果不知道中文字体要在family=参数后面接个什么好,我专门编制了一个包括有26种中文的函数FontsCF()
- FontsCE<-function(x){
- FC<-c( "新细明体","细明体","标楷体","黑体","宋体","新宋体","仿宋","楷体","仿宋_GB2312","楷体_GB2312","微软正黑体","微软雅黑",
- "隶书","幼圆","华文细黑","华文楷体","华文宋体","华文中宋", "华文仿宋","方正舒体" ,"方正姚体","华文彩云","华文琥珀",......)FE<-c( "PMingLiU" ,"MingLiU","DFKai-SB","SimHei","SimSun" ,"NSimSun","FangSong","KaiTi",
- "FangSong_GB2312","KaiTi_GB2312","Microsoft JhengHei","Microsoft YaHei","LiSu","YouYuan","STXihei","STKaiti",
- "STSong","STZhongsong","STFangsong","FZShuTi","FZYaoti","STCaiyun","STHupo","STLiti","STXingkai","STXinwei")
- CFonts<-data.frame(FC,FE,stringsAsFactors=F)
- n<-which(CFonts==x)
- result<-CFonts[n,2]
- return(result)
- }
将FontsCE函数结合Cairo包来绘图到PDF,就很方便地调整中文字体了,例如
- library(Cairo)
- CairoPDF("char_3.7_2.pdf")
- plot(身高,体重,family=FontsCE("华文楷体")) #仅需在此将华文楷体改为仿宋或其他字体名称即可。
- dev.off()
26种字体及其英文名
最后,列出这26种字体及其英文名:
1 新细明体 PMingLiU
2 细明体 MingLiU
3 标楷体 DFKai-SB
4 黑体 SimHei
5 宋体 SimSun
6 新宋体 NSimSun
7 仿宋 FangSong
8 楷体 KaiTi
9 仿宋_GB2312 FangSong_GB2312
10 楷体_GB2312 KaiTi_GB2312
11 微软正黑体 Microsoft JhengHei
12 微软雅黑 Microsoft YaHei
13 隶书 LiSu
14 幼圆 YouYuan
15 华文细黑 STXihei
16 华文楷体 STKaiti
17 华文宋体 STSong
18 华文中宋 STZhongsong
19 华文仿宋 STFangsong
20 方正舒体 FZShuTi
21 方正姚体 FZYaoti
22 华文彩云 STCaiyun
23 华文琥珀 STHupo
24 华文隶书 STLiti
25 华文行楷 STXingkai
26 华文新魏 STXinwei



雷达卡




京公网安备 11010802022788号







