前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ggplot2绘制热图标准化从0-1

ggplot2绘制热图标准化从0-1

作者头像
R语言数据分析指南
发布2023-08-18 13:39:32
4780
发布2023-08-18 13:39:32
举报

欢迎关注R语言数据分析指南

❝最近有朋友询问绘制热图时如何使刻度条展示为从「0-1」,这就涉及对数据进行标准的特殊处理,通常对数据进行处理无外乎「取log」或者直接使用「scale()函数进行标准化」,但是要达到从「0-1」的效果这两种方法显然实现不了,因此需要自定义函数来对数据进行标准化处理。下面小编就通过一个案例来进行展示,希望各位观众老爷能够喜欢。 ❞

加载R包

代码语言:javascript
复制
library(tidyverse)
library(vegan)
devtools::install_github("thomasp85/scico")
library(scico)

导入数据

代码语言:javascript
复制
data("varechem")  # 导入varechem数据集,该数据集包含了生态学变量的测量数据

# 数据清洗
df <- varechem %>%  # 将varechem数据集赋值给df,并进行列的选择和删除
  select(1:14) %>%  # 选择第1到14列的数据
  select(-c(Humdepth,Baresoil))  # 删除Humdepth和Baresoil列的数据
使用Min-Max标准化方法对df进行归一化处理
代码语言:javascript
复制
df_normalized <- as.data.frame(apply(df, 2, function(x) (x - min(x)) / (max(x) - min(x))))

绘制标准化热图

代码语言:javascript
复制
varechem %>%  # 将varechem数据集进行操作
  rownames_to_column(var="id") %>%  # 将行名转为列名,并将该列名命名为id
  select(id) %>%  # 选择id列
  bind_cols(.,df_normalized) %>%  # 将id列和df_normalized数据框进行列绑定
  pivot_longer(-id) %>%  # 对数据进行长格式转换,id列保持不变
  ggplot(aes(name,id,fill=value))+  # 设置绘图的数据映射
  geom_tile()+  # 绘制瓷砖图
  labs(x=NULL,y=NULL)+  # 设置x和y轴标签为空
  scale_fill_scico(palette="vik")+  # 设置填充颜色的配色方案为"vik"
  scale_y_discrete(expand=c(0,0),position = 'left')+  # 设置y轴为离散型,并将标签显示在左侧
  scale_x_discrete(expand=c(0,0))+  # 设置x轴为离散型
  theme(plot.background = element_blank(),  # 设置绘图的背景为空白
        panel.background = element_blank(),  # 设置面板的背景为空白
        axis.text=element_text(color="black",size=8),  # 设置坐标轴文本的颜色为黑色,大小为8
        axis.ticks = element_blank(),  # 设置坐标轴刻度为空白
        legend.background = element_blank(),  # 设置图例的背景为空白
        legend.text = element_text(color="black"),  # 设置图例文本的颜色为黑色
        legend.title = element_blank(),  # 设置图例标题为空白
        legend.spacing.x = unit(0.1,"cm"))+  # 设置图例水平间距为0.1厘米
          guides(fill=guide_colorbar(direction="vertical",reverse=F,barwidth=unit(.5,"cm"),barheight=unit(11,"cm")))

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言数据分析指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎关注R语言数据分析指南
  • 加载R包
  • 导入数据
    • 使用Min-Max标准化方法对df进行归一化处理
    • 绘制标准化热图
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档