只需三分钟!小果教你在绘制的热图添加注释信息!!

有不少小伙伴在绘制热图时候,绘制的图信息很少,只有名称和相关性值,有时看起来枯燥乏味。小果在这里教大家一个新的方式绘制热图,可以让小伙伴在绘制热图的时候添加自己想要的注释信息,这样一来小伙伴绘制的图片就会让读者看来了清晰明了。快跟着小果取学习吧。

我们平时取绘制热图的时候一般是使用pheatmap专门绘制热图的,这个包可以快速出土,但是却不能修改一些图片中的细节,这个时候就可以使用我们老朋友ggplot2包取实现更多的自定义设置。小果在这里使用自带的mtcars包中的数据,带领大家绘制热图,取添加一些注释的信息,就是在Y轴的标签在最外面。

其实标签显示在最外面原理很简单,就是如图不显示axis.text.y,而是添加的注释那个条添加上axis.text.y。如果有多个,只有外面的显示axis.tsxt,y

下面跟着小果取学习吧:

library(ggplot2)

library(aplot)

library(tidyr)

library(dplyr)

#我们先调用这几个包,小伙伴没有的自行去下载。

p <- scale(mtcars) %>% data.frame()

p$mtxars <- rownames(p)#这里需要把数据调整一下

#这里使用mtcars自带的数据小伙伴根据数据形式自行去设置

#这里小伙伴注意一下,按照实际顺序排列,不进行这一步ggplot默认字母顺序排列,图会乱掉

p$mtxars <- factor(p$mtxars,level = p$mtxars)

#宽表转长表

p1 <- gather(p, 1:11, key=”condition”, value=’expr’)

上述我们把数据已经整理完成了,接下来我们去绘制热图:

#绘制热图

pp1 <- ggplot(p1,aes(condition,mtxars)) +

geom_tile(aes(fill=expr),colour = “white”)+

scale_fill_gradientn(values = seq(0,1,0.2),colours = c(‘#6699CC’,’#FFFF99′,’#CC3333′))+

theme_minimal()+

scale_y_discrete(position=”right”)+

xlab(NULL) + ylab(NULL)+

theme(axis.text.y = element_blank())

#这里把参数调用出来,上述颜色可以了自行调整,

pp2 <- ggplot(p1,aes(condition,mtxars)) +

scale_color_gradientn(values = seq(0,1,0.2),colours = c(‘#6699CC’,’#FFFF99′,’#CC3333′))+

theme_bw()+

geom_point(aes(size=expr,color=expr))+

theme(panel.grid = element_blank(),axis.text.x =element_text(angle =90,hjust =0.5,vjust = 0.5))+

xlab(NULL) + ylab(NULL)+

theme(panel.border = element_rect(fill=NA,color=”black”, size=1, linetype=”solid”),

axis.text.y = element_blank())#

Type_A <- rownames(p) %>% as.data.frame() %>%

mutate(group=rep(c(“A”,”B”,”C”),

times=c(10,10,12))) %>%

mutate(p=””)%>%

ggplot(aes(p,.,fill=group))+

geom_tile() +

scale_y_discrete(position=”right”) +

theme_minimal()+xlab(NULL) + ylab(NULL) +

theme(axis.text.y = element_blank())+

labs(fill = “Type_A”)

Type_B <- rownames(p) %>% as.data.frame() %>%

mutate(group=rep(c(“D”,”E”,”F”),

times=c(6,12,14))) %>%

mutate(p=””)%>%

ggplot(aes(p,.,fill=group))+

geom_tile() +

scale_y_discrete(position=”right”) +

theme_minimal()+xlab(NULL) + ylab(NULL)+

labs(fill = “Type_B”)

#上述对数据集的参数进行调整,设置我们要绘制的组,小伙伴要看清楚,把自己的数据套用进去,下面我们把结果调整好的结果可视化:

pp1 %>%

insert_left(Type_A, width = .05)%>%

insert_left(Type_B,width=.05) #有些小伙伴%>%这里经常会报错,是因为R包dplyr没调用好,使绘制图片的时候找不到要绘制的组,调用不了函数。重新调用一下就可以,或者需要更新一下R包,不要忘记重新打开R。

上述就是对图片的绘制,热图的左侧是一些注释的信息,小伙伴有没有心动,我们还可以啦调整一下热图中的形状,:

下面使用PP2组的数据
pp2 %>%

insert_left(Type_A, width = .05)%>%

insert_left(Type_B,width=.05)

这下就大功告成了,上述图片中有注释的信息,如果有小伙伴其他的如果有其它顺序,排序之后重新设置factor。

就是这一步:

#按照实际顺序排列,不进行这一步ggplot默认字母顺序排列,图会乱掉
p$mtxars <- factor(p$mtxars,level = p$mtxars)

小伙伴有没有心动呢,快去试试自己的数据吧。其实,ggplot2是功能非常强大的包,它可以自定义很多图片中的细节,小伙伴要多多学习,理解代码中的含义,才能绘制出自己想要的图。

只需三分钟!小果教你在绘制的热图添加注释信息!!

有不少小伙伴在绘制热图时候,绘制的图信息很少,只有名称和相关性值,有时看起来枯燥乏味。小果在这里教大家一个新的方式绘制热图,可以让小伙伴在绘制热图的时候添加自己想要的注释信息,这样一来小伙伴绘制的图片就会让读者看来了清晰明了。快跟着小果取学习吧。

我们平时取绘制热图的时候一般是使用pheatmap专门绘制热图的,这个包可以快速出土,但是却不能修改一些图片中的细节,这个时候就可以使用我们老朋友ggplot2包取实现更多的自定义设置。小果在这里使用自带的mtcars包中的数据,带领大家绘制热图,取添加一些注释的信息,就是在Y轴的标签在最外面。

其实标签显示在最外面原理很简单,就是如图不显示axis.text.y,而是添加的注释那个条添加上axis.text.y。如果有多个,只有外面的显示axis.tsxt,y

下面跟着小果取学习吧:

library(ggplot2)

library(aplot)

library(tidyr)

library(dplyr)

#我们先调用这几个包,小伙伴没有的自行去下载。

p <- scale(mtcars) %>% data.frame()

p$mtxars <- rownames(p)#这里需要把数据调整一下

#这里使用mtcars自带的数据小伙伴根据数据形式自行去设置

#这里小伙伴注意一下,按照实际顺序排列,不进行这一步ggplot默认字母顺序排列,图会乱掉

p$mtxars <- factor(p$mtxars,level = p$mtxars)

#宽表转长表

p1 <- gather(p, 1:11, key=”condition”, value=’expr’)

上述我们把数据已经整理完成了,接下来我们去绘制热图:

#绘制热图

pp1 <- ggplot(p1,aes(condition,mtxars)) +

geom_tile(aes(fill=expr),colour = “white”)+

scale_fill_gradientn(values = seq(0,1,0.2),colours = c(‘#6699CC’,’#FFFF99′,’#CC3333′))+

theme_minimal()+

scale_y_discrete(position=”right”)+

xlab(NULL) + ylab(NULL)+

theme(axis.text.y = element_blank())

#这里把参数调用出来,上述颜色可以了自行调整,

pp2 <- ggplot(p1,aes(condition,mtxars)) +

scale_color_gradientn(values = seq(0,1,0.2),colours = c(‘#6699CC’,’#FFFF99′,’#CC3333′))+

theme_bw()+

geom_point(aes(size=expr,color=expr))+

theme(panel.grid = element_blank(),axis.text.x =element_text(angle =90,hjust =0.5,vjust = 0.5))+

xlab(NULL) + ylab(NULL)+

theme(panel.border = element_rect(fill=NA,color=”black”, size=1, linetype=”solid”),

axis.text.y = element_blank())#

Type_A <- rownames(p) %>% as.data.frame() %>%

mutate(group=rep(c(“A”,”B”,”C”),

times=c(10,10,12))) %>%

mutate(p=””)%>%

ggplot(aes(p,.,fill=group))+

geom_tile() +

scale_y_discrete(position=”right”) +

theme_minimal()+xlab(NULL) + ylab(NULL) +

theme(axis.text.y = element_blank())+

labs(fill = “Type_A”)

Type_B <- rownames(p) %>% as.data.frame() %>%

mutate(group=rep(c(“D”,”E”,”F”),

times=c(6,12,14))) %>%

mutate(p=””)%>%

ggplot(aes(p,.,fill=group))+

geom_tile() +

scale_y_discrete(position=”right”) +

theme_minimal()+xlab(NULL) + ylab(NULL)+

labs(fill = “Type_B”)

#上述对数据集的参数进行调整,设置我们要绘制的组,小伙伴要看清楚,把自己的数据套用进去,下面我们把结果调整好的结果可视化:

pp1 %>%

insert_left(Type_A, width = .05)%>%

insert_left(Type_B,width=.05) #有些小伙伴%>%这里经常会报错,是因为R包dplyr没调用好,使绘制图片的时候找不到要绘制的组,调用不了函数。重新调用一下就可以,或者需要更新一下R包,不要忘记重新打开R。

上述就是对图片的绘制,热图的左侧是一些注释的信息,小伙伴有没有心动,我们还可以啦调整一下热图中的形状,:

下面使用PP2组的数据
pp2 %>%

insert_left(Type_A, width = .05)%>%

insert_left(Type_B,width=.05)

这下就大功告成了,上述图片中有注释的信息,如果有小伙伴其他的如果有其它顺序,排序之后重新设置factor。

就是这一步:

#按照实际顺序排列,不进行这一步ggplot默认字母顺序排列,图会乱掉
p$mtxars <- factor(p$mtxars,level = p$mtxars)

小伙伴有没有心动呢,快去试试自己的数据吧。其实,ggplot2是功能非常强大的包,它可以自定义很多图片中的细节,小伙伴要多多学习,理解代码中的含义,才能绘制出自己想要的图。