在R中绘制热图

时间:2018-01-31 09:13:41

标签: r heatmap

我正在学习在R中编程并感谢任何帮助。我想将列值与引用匹配并生成热图,其中填充是总频率值,如下所示。我还想保持“from.aa”

给出的x值的顺序

参考

<button type='button'>Click Me</button>

数据集

Y_aa <- ("ILVFMCAGPTSYWQNHEDKR*X")
yaxis_aa <-strsplit(Y_aa,"")[[1]]

from.aa值是位置值,因此顺序必须与数据集中给出的相同。

目前,我使用ggplot来做热图,但是没有保留x轴的顺序。

> c_1
    from.aa to.aa total.freq
1         R     S  0.7368421
2         W     *  0.7368421
3         G     G  0.7368421
4         E     D  0.7368421
5         S     G  0.7368421
6         P     Q  0.7368421
7         P     Q  0.7368421
8         G     G  0.7368421
9         P     T  0.7368421
10        P     T  0.7368421
11        S     S  0.7368421
12        A     A  0.7368421
13        A     P  0.7368421
14        A     P  0.7368421
15        Q     *  0.7368421
16        Q     *  0.7368421
17        V     V  0.7368421
18        S     E  0.7368421
19        S     E  0.7368421
20        S     E  0.7368421
21        L     L  0.7368421
22        L     L  0.7368421
23        R     L  0.7368421
24        R     L  0.7368421

所以我的问题是;是否可以将total.freq值的热图作为填充,并且可以保留x轴(“from.aa”)的顺序,而y轴值即“to.aa”可以映射到参考值,即“ yaxis_aa“

1 个答案:

答案 0 :(得分:0)

我能够获得一些情节,但它仍然缺少两个重要的数据元素。

在此之前,我在我的数据集中添加了一个列,用于from.aa数据,因为它的位置,我创建了一个列0:length(c_l $ from.aa)并将其用作我的x轴。在此数据集中,长度为123.

我使用的另一件事是

c_melt=melt(c_1, id.var = c('pos.aa','from_aa', 'to_aa'))

然而,在热图中,from.aa和to.aa的所有值都没有显示在热图上

ggplot(data = c_melt, aes(x=pos.aa, y=to.aa, fill=value, color=value)) + 
       geom_tile(aes(fill = value)) + 
       geom_text(aes(label = round(value, 2))) +
       scale_fill_gradient(low = "light blue", high = "red") +
       scale_x_continuous(breaks=c(0:123), labels=factor(0:123)) +
    ylab("aa Change") +
    xlab("Reference aa by position") +
    theme(legend.title = element_text(size = 10),
        legend.text = element_text(size = 2),
        plot.title = element_text(size=12),
        axis.title=element_text(size=14,face="bold"),
        axis.text.x = element_text(angle = 90, hjust = 1)) +
    labs(fill = "value")

热图如下;

heatmap

任何改进此热图的建议都会非常有用。此外,我打算使用from.aa值

将辅助标签添加到x轴