R绘图中文乱码终极解决方案
R 绘图中文支持问题概述在 R 语言中进行数据可视化时默认情况下图形中的中文显示会出现乱码或方框。这是由于 R 的图形设备默认不支持中文字符集。解决这一问题需要调整图形设备参数或使用支持中文的字体。基本解决方案设置中文字体通过par()函数设置图形参数指定支持中文的字体。以下代码演示如何设置系统自带的中文字体如宋体、黑体# 设置图形参数使用支持中文的字体 par(family SimSun) # 宋体 plot(1:10, main 中文标题, xlab X轴标签, ylab Y轴标签)如果系统没有预装中文字体可以安装showtext或extrafont包加载外部字体。使用 showtext 包动态加载字体showtext包允许动态加载系统字体或本地字体文件支持中文显示# 安装并加载 showtext 包 install.packages(showtext) library(showtext) # 加载系统字体如微软雅黑 font_add(MicrosoftYaHei, msyh.ttc) # Windows 系统 showtext_auto() # 绘制图形 plot(1:10, main 中文标题微软雅黑, family MicrosoftYaHei)使用 ggplot2 时的中文支持对于ggplot2用户通过theme()和geom_text()的family参数指定中文字体library(ggplot2) library(showtext) # 加载字体 font_add(STKaiti, simkai.ttf) # 楷体 showtext_auto() # 创建数据框 data - data.frame(x 1:5, y c(2, 4, 1, 6, 3), label c(苹果, 香蕉, 橙子, 葡萄, 西瓜)) # 绘制图形 ggplot(data, aes(x, y)) geom_col(fill steelblue) geom_text(aes(label label), family STKaiti, size 8) labs(title 水果销量, x 种类, y 数量) theme(text element_text(family STKaiti))导出图形时保留中文导出图形为 PDF 或 PNG 时需确保字体嵌入。使用cairo_pdf()或ragg::agg_png()设备# 导出 PDF支持中文 cairo_pdf(plot_chinese.pdf, width 6, height 4) plot(1:10, main 中文标题, family SimHei) dev.off() # 导出 PNG通过 ragg 包 library(ragg) agg_png(plot_chinese.png, width 800, height 600, res 150) plot(1:10, main 中文标题, family STKaiti) dev.off()自定义字体路径加载若字体不在系统默认路径可通过完整路径加载library(showtext) font_add(MyFont, C:/Path/To/Your/Font.ttf) # 替换为实际路径 showtext_auto() plot(1:10, main 自定义字体, family MyFont)注意事项字体名称匹配确保family参数与字体实际名称一致。设备兼容性部分图形设备如默认png()可能不支持中文建议使用cairo或ragg。多平台适配Linux 系统可能需要安装libcairo2-dev和libfreetype6-dev。通过上述方法可以灵活地在 R 绘图中实现中文支持适应不同场景需求。