簡體   English   中英

在R中繪制熱圖

[英]plotting heatmap in R

我正在學習用R編程,並感謝任何幫助。 我想將列值與參考匹配,並生成熱圖,其中填充為總頻率值,如下所示。 我也想保持“ from.aa”給定的x值的順序。

參考

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

數據集

> 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

from.aa值是位置值,因此順序必須保持與數據集中給定的順序相同。

當前,我使用ggplot進行熱圖繪制,但未保留x軸的順序。

head(c_melt)
  from.aa to.aa   variable     value
1       R     S total.freq 0.7368421
2       W     * total.freq 0.7368421
3       G     G total.freq 0.7368421
4       E     D total.freq 0.7368421
5       S     G total.freq 0.7368421
6       P     Q total.freq 0.7368421
ggplot(data = c_melt, aes(x=from.aa, y=to_aa, fill=value)) + 
  geom_tile()

所以我的問題是; 是否可以繪制total.freq值的熱圖作為填充,並且可以保留x軸(“ from.aa”)的順序,同時將y軸值(即“ to.aa”)映射到參考值,即“ yaxis_aa”

我能夠得到一些圖,但是它仍然缺少兩個重要的數據元素。

在此之前,我在數據集中添加了一列關於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")

熱圖如下:

熱圖

任何改進此熱圖的建議都將非常有幫助。 我也打算使用from.aa值將輔助標簽添加到x軸

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM