You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Base R绘图中使用跨性别/雌雄同体符号遇macOS字体问题

在Base R绘图中解决macOS罕见Unicode符号显示方块的问题

macOS上Base R绘图时,常见的男女Unicode符号(♂\u2642、♀\u2640)能正常显示,但像雌雄同体/跨性别符号⚥(\u26a5)这类罕见字符会显示方块,核心原因是默认绘图设备用的字体不包含这些字符——虽然R控制台能输出符号,是因为控制台用的字体支持,但绘图设备(比如quartz)的默认字体没覆盖这类符号。

下面是几种可行的解决办法:

1. 给绘图指定支持该符号的字体

先找到macOS上支持⚥的字体,比如Arial Unicode MS、Noto Sans Symbols这类覆盖全Unicode的字体,然后在绘图前用par(family)指定:

# 指定支持符号的字体
par(family = "Arial Unicode MS")
a <- '\u26a5'
plot(1, 1, pch = a, cex = 2) # cex参数放大符号,方便查看

如果不确定哪些字体支持,可以用extrafont包导入并列出系统字体,逐个测试:

library(extrafont)
font_import() # 首次运行要导入系统字体,耗时较长
fonts() # 列出所有可用字体

2. 换用SVG/PNG绘图设备并指定字体

如果默认的quartz设备不好使,直接用SVG或PNG设备输出,在设备参数里指定支持的字体:

SVG格式示例

svg("trans_symbol.svg", family = "Arial Unicode MS")
plot(1, 1, pch = '\u26a5', cex = 2)
dev.off()

生成的SVG文件打开后就能看到正常显示的符号。

PNG格式示例

png("trans_symbol.png", family = "Arial Unicode MS")
plot(1, 1, pch = '\u26a5', cex = 2)
dev.off()

3. 用对应emoji替代(可选)

如果只是需要相似的视觉标识,也可以用跨性别emoji的Unicode(\u1F6C4),记得指定支持emoji的字体比如Apple Color Emoji:

par(family = "Apple Color Emoji")
plot(1, 1, pch = '\u1F6C4', cex = 2)

内容的提问来源于stack exchange,提问作者Ho-Yon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 11:40:51