R 绘图 - 中文支持

在 R 中绘制包含中文的图形时,可能会遇到乱码或无法显示的问题。以下是一些常见的方法和代码示例,帮助解决中文支持问题。

设置系统语言环境

确保系统语言环境支持中文。在 R 中可以通过以下代码设置:

Sys.setlocale(category = "LC_ALL", locale = "zh_CN.UTF-8")

如果系统不支持 zh_CN.UTF-8,可以尝试其他语言环境,如 ChineseChinese.China

使用支持中文的字体

在绘图时指定支持中文的字体是关键。以下是一个示例,使用 showtext 包加载中文字体:

library(showtext)
font_add("simhei", "simhei.ttf")  # 加载黑体字体文件
showtext_auto()  # 自动启用字体支持

plot(1:10, main = "中文标题", family = "simhei")

使用 ggplot2 绘制中文图形

ggplot2 是 R 中常用的绘图包,以下是一个支持中文的示例:

library(ggplot2)
library(showtext)

font_add("simsun", "simsun.ttc")  # 加载宋体字体文件
showtext_auto()

data <- data.frame(x = 1:10, y = rnorm(10))
ggplot(data, aes(x, y)) +
  geom_point() +
  labs(title = "中文标题", x = "X轴", y = "Y轴") +
  theme(text = element_text(family = "simsun"))

使用 Cairo 包输出高质量图形

Cairo 包支持多种输出格式,并可以嵌入中文字体:

library(Cairo)
library(ggplot2)

CairoPNG("plot.png", width = 800, height = 600)
ggplot(data, aes(x, y)) +
  geom_point() +
  labs(title = "中文标题", x = "X轴", y = "Y轴") +
  theme(text = element_text(family = "SimSun"))
dev.off()

使用 extrafont 包管理字体

extrafont 包可以方便地加载和管理系统字体:

library(extrafont)
font_import()  # 导入系统字体
loadfonts()  # 加载字体

plot(1:10, main = "中文标题", family = "SimHei")

解决 PDF 输出中的中文问题

在输出 PDF 时,可以通过 cairo_pdf 设备支持中文:

cairo_pdf("plot.pdf", family = "SimSun")
plot(1:10, main = "中文标题")
dev.off()

使用 ragg 包支持中文

ragg 包提供了高质量的图形设备,支持中文:

library(ragg)
agg_png("plot.png", width = 800, height = 600, res = 150)
plot(1:10, main = "中文标题", family = "SimHei")
dev.off()

总结

在 R 中支持中文绘图的关键是正确设置语言环境和加载中文字体。通过 showtextextrafontCairoragg 等包,可以灵活地实现中文图形的绘制和输出。根据实际需求选择合适的工具和方法,确保图形中的中文显示正常。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐