楼主: ZQZ520
7302 2

[实际应用] R图片保存到PDF文件中顺利显示中文的方法 [推广有奖]

  • 2关注
  • 49粉丝

院士

17%

还不是VIP/贵宾

-

威望
4
论坛币
-1176554 个
通用积分
6481.7282
学术水平
99 点
热心指数
203 点
信用等级
94 点
经验
31703 点
帖子
655
精华
7
在线时间
2457 小时
注册时间
2014-5-7
最后登录
2021-8-4

楼主
ZQZ520 在职认证  发表于 2014-5-16 17:02:15 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
      较早的时候我曾求助过一个帖子用pdf文件保持图片显示不了中文吗?但长久以来一直没有回复,于心不甘。 由于个人对于矢量图(放大不失真)有特别偏好,所以还是专门去研究了这一部分,目前发现有两个方法可以实现。

     一、简捷方法:直接在PDF()中设定字体,添加family="GB1"参数;
     其优点是方便快捷;缺点是字体单一,只有标准宋体。
     如果想进一步了解PDF的字体库可通过names(pdfFonts())命令查看。
     在此,我依旧使用上一个帖子(作业3.7)的数据来演示一下:
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种字体及其英文名:
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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:pdf文件 显示中文 PDF Student Family 中文 library family 矢量图 names

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
dxystata + 50 + 50 + 1 + 1 精彩帖子
xkdog + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 150  论坛币 + 50  学术水平 + 9  热心指数 + 9  信用等级 + 8   查看全部评分




CDA数据分析交流群 217748971
沙发
xkdog 发表于 2014-5-16 20:19:45 |只看作者 |坛友微信交流群
这个厉害啊!保存一个。
好像还有一个showtext包,可以用做这个功能,不知道楼主对这个包有什么心得?
http://cos.name/2014/01/showtext-interesting-fonts-and-graphs/

使用道具

藤椅
shjrxytjyb 发表于 2020-3-21 21:44:04 |只看作者 |坛友微信交流群
谢谢分享

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-21 23:51