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

R语言ggplot2如何修改x/y轴标签、图例及支持LaTeX公式显示

解决方法

首先安装并加载所需依赖包:

# 未安装的话先执行安装
install.packages(c("dplyr", "tidyr", "ggplot2", "latex2exp"))
library(dplyr)
library(tidyr)
library(ggplot2)
library(latex2exp)

修改后的完整代码如下:

as.data.frame(y3) %>%
  mutate(row = row_number()) %>%
  pivot_longer(-row) %>%
  # 匹配原始小写v开头的列名,不要写大写V
  mutate(name = recode(name, 
                       v1 = "z = 0.9595", 
                       v2 = "z = 1.087", 
                       v3 = "z = 1.2395", 
                       v4 = "z = 1.45", 
                       v5 = "z = 1.688")) %>%
  ggplot(aes(x = value, color = name)) +
  geom_density() +
  # 用TeX函数解析LaTeX公式
  xlab(TeX("Distribution of Ratio $b_{sp}/b_{ph}$ for each redshift")) +
  ylab("Number of occurences") +
  # 如果需要修改图例的标题可以保留下面这行,不需要直接删除即可
  labs(color = "红移取值")

关键修改说明

  • 无曲线问题修复:你之前代码里recode用了大写的V1`V5`,和原始数据小写`v1`v5的列名不匹配,导致重编码后name列全是缺失值,自然无法生成曲线,统一大小写即可解决
  • 标签LaTeX公式显示修复:ggplot2原生不支持直接解析LaTeX语法,调用latex2exp包的TeX()函数包裹带公式的标签内容,就能正常渲染下标等格式
  • 三类自定义需求的实现逻辑:
    • x轴标签修改:通过xlab()或labs(x = 自定义内容)实现
    • y轴标签修改:通过ylab()或labs(y = 自定义内容)实现
    • 图例分类命名修改:通过recode函数重命名name列的取值,即可修改图例中每个类别的显示名称

如果修改后仍有异常,可先执行colnames(y3)确认原始数据的列名格式,保证和recode里的命名完全匹配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 04:30:02