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

如何在R中绘制四分组散点图?含代码报错及特殊符号问题

问题解决:ggplot散点图报错及轴标题特殊符号设置

一、解决ggplot代码报错问题

你的代码核心错误是ggplot调用语法错误,同时存在旧版参数兼容问题:

  • 原代码中ggplot(df(aes(...)))是错误写法,ggplot的正确格式是ggplot(数据框对象, aes(映射关系)),你把逗号写成了括号,导致R误将df当作函数调用,从而抛出argument "df1" is missing错误。
  • 新版ggplot2已弃用fun.y参数,需改为fun,避免警告或运行错误。

修正后的完整代码

library(ggplot2)

# 假设你的数据框名为df,group列包含MA-H2o、MA-Cu、OA-H2o、OA-Cu四组数据
ggplot(df, aes(x = group, y = Olfactory.epithelium.thickness, color = group)) +
  geom_point(size = 4, alpha = 0.7, position = position_jitter(w = 0.1, h = 0)) +
  stat_summary(
    fun = mean, geom = "point", shape = 23,
    color = "black", aes(fill = group), size = 4
  ) +
  stat_summary(
    fun.min = function(x) mean(x) - sd(x),
    fun.max = function(x) mean(x) + sd(x),
    geom = "errorbar", width = 0.1
  ) +
  theme_bw()

二、轴标题添加特殊符号的可行方案

轴标题使用特殊符号完全可行,报错unexpected symbol是由于语法错误(如未正确包裹字符串、表达式写法不当)。以下是两种常用实现方式:

方法1:使用基础R的expression()函数

支持希腊字母、上下标等复杂格式,通过~添加空格,[]设置下标:

# 在原代码末尾添加labs图层
+ labs(
    x = expression(Group~(MA-H[2]O~"、"~OA-H[2]O~"、"~MA-Cu~"、"~OA-Cu)),
    y = expression(Olfactory~Epithelium~Thickness~(mu*m))
  )

方法2:使用ggtext包的markdown语法

更直观,支持HTML格式的上下标、特殊字符,需先安装加载ggtext:

install.packages("ggtext")
library(ggtext)

# 在原代码末尾添加labs和theme设置
+ labs(
    x = "组别(MA-H<sub>2</sub>O、OA-H<sub>2</sub>O、MA-Cu、OA-Cu)",
    y = "嗅觉上皮厚度 (μm)"
  ) +
  theme(
    axis.title.x = element_markdown(),
    axis.title.y = element_markdown()
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 20:32:26