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列的取值,即可修改图例中每个类别的显示名称
- x轴标签修改:通过
如果修改后仍有异常,可先执行colnames(y3)确认原始数据的列名格式,保证和recode里的命名完全匹配即可。
内容的提问来源于stack exchange,提问作者user1773603
相关产品推荐
相关产品推荐

