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

R 4.2.2中ggplot使用expression()报错:无效多字节字符串

解决R 4.2.2 + ggplot2中expression()标签的编码报错问题

问题原因

R 4.2.x版本开始默认采用UTF-8作为全局编码,而你代码里的\211是旧编码(如Latin-1)下的八进制转义字符,在UTF-8环境中会被识别为无效的多字节序列,触发报错。

解决方案

直接替换为UTF-8兼容的字符表示方式,以下两种方法任选:

  1. 直接输入目标符号
    如果你想显示的是±、½这类常见符号,直接在代码里输入对应的UTF-8字符即可:

    plt1 <- ggplot(MyData,
                  aes(x=A, y=B))+
      geom_point(aes(fill=C), size=3, shape=21)+
      labs(
        y = expression(beta ~ "(±)"), # 直接输入目标符号
        x = "A",
        fill = "Banana")+
      theme_bw()
    
    plot(plt1)
    
  2. 使用Unicode转义序列
    如果你不确定如何直接输入符号,用\uXXXX格式的Unicode转义码代替(XXXX为符号的十六进制Unicode码)。比如±的Unicode码是00B1,写法如下:

    plt1 <- ggplot(MyData,
                  aes(x=A, y=B))+
      geom_point(aes(fill=C), size=3, shape=21)+
      labs(
        y = expression(beta ~ "(\u00B1)"), # Unicode转义格式
        x = "A",
        fill = "Banana")+
      theme_bw()
    
    plot(plt1)
    

补充说明

如果原来的\211对应其他符号,你可以查询该符号的Unicode编码,替换成对应的\uXXXX序列即可。这种方式完全兼容R 4.2+的UTF-8编码设置,不会再出现无效多字节字符串的报错。

内容的提问来源于stack exchange,提问作者Strobila

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:20:29