2013-08-28 75 views
1

我有一個很大的data.frame(ncols = 500,nrows = 14000)。 它看起來像這樣:大量的數據圖示

  Sample1 Sample2 Sample3 .....  
Gene1  22   0  0.11  .....  
Gene2  0.112  0.1  0.4  .....  
Gene3  0.45  0  0.19  .....  
.....  .....  .....  .....  .....  

我想繪製如此龐大的數據量不應用任何統計數字,這樣(簡單地使用顏色或其他工具)在以下方面的差異很清楚數量(大小)爲前。樣品1的Gene1和Gene2之間等等。 除了熱圖以外的任何想法?

+2

嘗試使用熱圖 - [如何繪製基因表達數據的熱圖?](http://www.biostars.org/p/8829/) – zx8754

回答

1

如何使用ggplot2中的geom_raster

# Make up some data 
set.seed(1) 
df <- data.frame(matrix(runif(25) , 5 , 5)) 
#   X1  X2   X3   X4   X5 
#1 0.5316382 0.4360309 0.09576886 0.56497254 0.43930824 
#2 0.2383700 0.1531009 0.71377161 0.39367645 0.42211072 
#3 0.5009796 0.6549886 0.05996069 0.08236798 0.08574704 
#4 0.1171437 0.8765644 0.29892712 0.06071803 0.78011966 
#5 0.5066046 0.5486397 0.34770099 0.07785835 0.09659246 

# Abs difference between columns of dataframe 
out <- data.frame(t(apply(df , 1 , function(x) abs(diff(x))))) 

# Plot using geom_raster  
require(ggplot2) 
require(reshape2) 
out.melt <- melt(out) 
out.melt$y <- rep(1:10,times = 9) 
p <- ggplot(out.melt , aes(variable , y , fill = value)) + geom_raster() 
p 

enter image description here

+0

謝謝西蒙!它運作良好! – Fuv8

+1

@ Fuv8非常歡迎 –

1

如果問題是關於真正的海量數據(例如,當數據點的數量遠遠大於像素的屏幕上的數字越大),怎麼樣斌總結光滑:用於可視化大量的數據,如這裏所描述http://vita.had.co.nz/papers/bigvis.html

@Article{bigvis, 
    title = {Bin-summarise-smooth: a framework for visualising large data}, 
    author = {Hadley Wickham}, 
    year = {Submitted}, 
    journal = {Infovis 2013}, 
} 

參見的框架(例如,第5滑動)本演示http://files.meetup.com/2906882/visualising_big_data_in_R.pdf

+0

嗨結!這不完全是像素問題,但如果可能的話,這是一個有意義的表示問題,因爲數量巨大。 – Fuv8