我有一個數據框中的蛋白質 - 蛋白質相互作用數據,標題爲s1m。每個DB和AD對做出的互動,我可以繪製它還有:圖中每個點的高度值
> head(s1m)
DB_num AD_num
[1,] 2 8153
[2,] 7 3553
[3,] 8 4812
[4,] 13 7838
[5,] 24 3315
[6,] 24 6012
圖中的數據的樣子:
然後我用這個網站的代碼,我發現繪製填充輪廓線:
## compute 2D kernel density, see MASS book, pp. 130-131
require(MASS)
z <- kde2d(s1m[,1], s1m[,2], n=50)
plot(s1m, xlab="X label", ylab="Y label", pch=19, cex=.4)
filled.contour(z, drawlabels=FALSE, add=TRUE)
它給了我得到的圖像(減去塗鴉):
我的問題:我需要用原始s1m
數據框中的每一行數據註釋一個數字,這個數字對應於等高線圖上的高度(因此我在上面的圖像上有塗鴉)。我認爲列表z有我正在尋找的值,但我不確定。
最後,我想我的數據,希望是這個樣子,所以我可以研究組蛋白相互作用:
DB_num AD_num height
[1,] 2 8153 1
[2,] 7 3553 1
[3,] 8 4812 3
[4,] 13 7838 6
[5,] 24 3315 2
[6,] 24 6012 etc.
當您將值1,2,3等等附加到'DB_num'和'AD_num'的每個組合時,這些虛擬數字是指實際密度或其密度下降到的bin。換句話說,在你的圖上是2是指實際值2還是第二個bin(它取值1e-9到1.5e9? –
自輪廓。plot'似乎不會返回有用的值,我想這涉及到兩個有點棘手的問題:(i)從's1m'中的值映射到等高線圖所使用的點陣座標,並且(ii)再現級別分配在網格的不同位置; (ii)可以通過借用和調用'contour.plot'自己的語法來實現,例如, '水平< - 剪切(as.numeric(z $ z),漂亮(範圍(z $ z),20))',或者自己計算水平並明確設置相應參數... – texb
@GavinSimpson虛擬數字將會指的是垃圾桶,但具有實際值的點可能也會起作用。 –