在R语言ggplot2中如何将图例文本修改为百分比格式
在ggplot2中可以通过调整对应映射的比例尺labels参数实现图例百分比格式化,针对你提供的热图示例,两种常用实现方案如下:
原效果参考:
方案1:使用scales包内置格式化函数
scales属于tidyverse的依赖包,无需额外安装,可直接调用percent()函数快速实现百分比格式化,支持自定义精度:
library(tidyverse) plot_data <- data.frame(category=letters,data_seq=c(1:length(letters)), value=rnorm(length(letters))/10) plot_data %>% ggplot(aes(x=data_seq,y=category,fill=value))+ geom_tile() + # accuracy参数控制百分比保留的小数位数,设为1即保留整数,设为0.1即保留1位小数 scale_fill_continuous(labels = scales::percent(accuracy = 1))
方案2:自定义格式化函数
如果不想依赖scales的封装函数,也可以自定义转换规则:
plot_data %>% ggplot(aes(x=data_seq,y=category,fill=value))+ geom_tile() + # 自定义转换逻辑:数值*100后拼接百分号 scale_fill_continuous(labels = function(x) paste0(x * 100, "%"))
注:如果你的原始数值本身已经是百分比量级(例如数值10对应10%),只需要去掉代码中的
*100逻辑即可。
内容的提问来源于stack exchange,提问作者anderwyang
相关产品推荐
相关产品推荐

