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

ggplot中Unicode Ø带上标及parse模式显示异常问题求助

可行解决方案

此前方案失效的原因:当parse=TRUE或使用expression函数时,R会将字符串按照plotmath数学表达式语法解析,未被plotmath内置识别的Unicode符号会被截断或错误渲染;latex2exp包对混合Unicode字符的LaTeX公式渲染支持存在缺陷,因此无法得到预期效果。

方案1:使用原生plotmath的paste()拼接(无需额外安装包)

通过paste()把不需要解析的Ø符号和需要解析的上标部分拆分拼接,所有内容为一个整体,调整图表尺寸不会出现错位:

library(tidyverse)
ggplot()+
  annotate(geom="text", 
           label = expression(paste("\u00D8", 28.15^{+0.15})), 
           x=0, y=0, 
           parse = TRUE, 
           size=5)+
  xlim(c(-0.1, 0.1))+
  ylim(c(-0.02, 0.1))+
  theme_void()

方案2:使用ggtext包的Markdown渲染(灵活性更高)

如果需要混合更多格式,推荐使用ggtext包的富文本渲染能力,直接用Markdown语法写内容,不需要调用plotmath解析:

# 首次使用先安装包:install.packages("ggtext")
library(tidyverse)
library(ggtext)

ggplot()+
  annotate(geom="richtext", 
           label = "Ø28.15<sup>+0.15</sup>", 
           x=0, y=0, 
           size=5,
           fill = NA, # 去掉背景填充
           label.colour = NA # 去掉边框
           )+
  xlim(c(-0.1, 0.1))+
  ylim(c(-0.02, 0.1))+
  theme_void()

该方案支持任意Unicode字符和Markdown格式(上标、下标、颜色、加粗等)混合使用,兼容性更强。

内容的提问来源于stack exchange,提问作者Marek Fiołka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:54:03