r如何将显示的图片导出pdf linux,R图片保存到PDF文件中顺利显示中文的方法

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

一、简捷方法:直接在PDF()中设定字体,添加family="GB1"参数;

其优点是方便快捷;缺点是字体单一,只有标准宋体。

如果想进一步了解PDF的字体库可通过names(pdfFonts())命令查看。

在此,我依旧使用上一个帖子(作业3.7)的数据来演示一下:

student19

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

FC

"隶书","幼圆","华文细黑","华文楷体","华文宋体","华文中宋", "华文仿宋","方正舒体" ,"方正姚体","华文彩云","华文琥珀","华文隶书", "华文行楷","华文新魏" )

FE

"FangSong_GB2312","KaiTi_GB2312","Microsoft JhengHei","Microsoft YaHei","LiSu","YouYuan","STXihei","STKaiti",

"STSong","STZhongsong","STFangsong","FZShuTi","FZYaoti","STCaiyun","STHupo","STLiti","STXingkai","STXinwei")

CFonts

n

result

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值