❝今天会员交流群内有朋友询问图片预览遇到问题该如何解决,本节就来详细介绍一下R中图形预览及导出会遇到的问题,个人观点仅供参考。❞
R version 4.3.3 (2024-02-29) -- "Angel Food Cake"
Copyright (C) 2024 The R Foundation for Statistical Computing
> library(tidyverse)
── Attaching core tidyverse packages ───────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.0 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ─────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package to force all conflicts to become errors
下面先来绘制一张带有中文字符的图
可以看到如往常一样,中文字符也是以方块的形式展示,但是如果我们点击Export将其导出为pdf格式可以看到中文字符正常显示了,如下图所示。
仔细看导出页面提到了「cairo_pdf」,这就是关键所在。
❝Cairo是R中的一个包,用于创建向量图形(如PDF、SVG)和位图图形(如PNG、BMP、GIF、JPEG)。它基于Cairo图形库,该库是一个跨平台的图形API,支持多种输出设备。Cairo包支持中文显示,它支持Unicode和多种文本渲染选项,因此可以显示中文和其他多字节语言字符。 ❞
install.packages("Cairo")
❝要访问和修改这些设置,可以在RStudio中按照以下步骤操作: 1.打开RStudio 2.在菜单栏中,选择Tools> Global Options...(全局选项...) 3.在弹出的Options窗口中,从左侧菜单选择General 在General设置中,找到Graphics这里列出了上述的一些设置项,选择Cairo点击Apply->OK ❞
完成上述设置后,重新运行代码可以看到在右侧图形进行展示时也能正确显示中文。
windows系统则需要在代码中使用showtext包进行字体渲染,若不进行渲染则导出pdf时字体会乱码
install.packages("showtext")
library(tidyverse)
library(showtext)
showtext_auto()
iris %>% as_tibble() %>%
ggplot(aes(Sepal.Length,Petal.Length,fill=Species,color=Species))+
geom_point()+
labs(title="鸢尾花数据集")+
theme_classic()