R语言作图保存在pdf中时无法显示中文标题

本文介绍两种在R语言中生成包含中文的PDF图表的方法:一是通过pdf()函数直接设置;二是利用Cairo程序包的CairoPDF()函数,并提供了一个自定义函数用于设置多种中文字体。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有两个方法可以实现:

1、直接在pdf( )这个函数中设置family这个参数,进行字体设置

但是字体单一,只有标准宋体,如:

 > pdf("d:/def.pdf",family="GB1")
 > plot(x,y,xlab="高度",ylab="体重",main="统计")
 > dev.off() 

2、调用 Cairo程序包,使用CairoPDF( )函数

> library(Cairo)
> CairoPDF("d:/def.pdf")
> plot(x,y,xlab="高度",ylab="体重",main="统计",family="STKaiti")
> dev.off()


如果不知道family参数设置成什么,可以写一个函数来定义,如:

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)

}


这样family可以设置为family=FontsCE("华文楷体")等等

### 创建多张二维散点图 为了在R语言中创建多张二维散点图,可以利用`par()`函数中的`mfrow`或`mfcol`参数来分割画布,从而在同一窗口内显示多个图形。下面是一个具体的例子: ```r # 设置工作目录并加载必要的包 setwd("C:/Users/Cara/Desktop") # 加载mtcars数据集作为示例数据源 data(mtcars) # 定义一个2×2布局的绘图区域 par(mfrow=c(2, 2)) # 绘制四组不同的散点图 plot(mtcars$wt, mtcars$mpg, main="Weight vs Mileage", xlab="Weight (1000 lbs)", ylab="Miles/(US) gallon") plot(mtcars$cyl, mtcars$hp, pch=19, col='blue', main="Cylinder Number vs Horsepower", xlab="# of Cylinders", ylab="Horse Power") plot(mtcars$qsec, mtcars$drat, type="p", pch=20, cex=2, col="red", main="Quarter mile time vs Rear axle ratio", xlab="1/4 mile time", ylab="Rear axle ratio") plot(mtcars$vs, mtcars$am, pch=21, bg="green", main="Engine Shape vs Transmission Type", xlab="V/S", ylab="Transmission") ``` 上述代码展示了如何在一个窗口里排列四个独立的散点图,并且每个子图都有各自的标题以及轴标签[^2]。 对于更复杂的情况,如果希望每一张图片保存成单独文件,则可以在每次调用`plot()`之前加上相应的`pdf()`, `png()`, 或者其他格式的设备启动命令,在完成作图之后再关闭该设备连接以确保文件被正确写入磁盘。 ```r # 单独保存每一个图表至PNG文件 png(filename="weight_vs_mileage.png") plot(mtcars$wt, mtcars$mpg, main="Weight vs Mileage", xlab="Weight (1000 lbs)", ylab="Miles/(US) gallon") dev.off() png(filename="cylinder_number_vs_horsepower.png") plot(mtcars$cyl, mtcars$hp, pch=19, col='blue', main="Cylinder Number vs Horsepower", xlab="# of Cylinders", ylab="Horse Power") dev.off() ``` 这种方法允许灵活控制各个输出文件的位置、名称及其分辨率等属性[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值