2012-05-23 85 views
1

我正在使用R和來自格子的函數levelplot()製作熱圖。在R中調整熱圖的顏色和比例

我使用的命令是:

data<-read.table("data_corr", header=T) 
library(gplots) 
library(lattice) 
z<-cor(data) 
levelplot(z) 

,我得到一個數字這樣

one

三件事:

(一)行標籤弄髒,如何這可以解決得到更清晰的行標籤? (b)如何使用紅色,綠色和藍色而不是默認顏色(粉紅色,白色和藍色)?

(c)是否可以調整從0.90到1而不是0.84的比例?

在python中的解決方案也受到歡迎,在這種情況下,我有一個90 * 90(行*列)的關聯文件,說文件名是z.txt。如果區域爲TRUE使用

col.regions
顏色向量:

回答

1

在Python的matplotlib,該問題的答案是:

(一)與imshow選項情節interpolation="nearest"

(B)的colormaps可以在例如imshow選項cmap=cm.jet選擇。 More examples here。 (c)爲了縮放,我假設你只想在閾值中顯示值並相應地顯示顏色條圖。使用imshow選項vmaxvmin

這裏是一個最小的工作例如:

import numpy as np 
import pylab as plt 

# Create random matrix, save it to a text file 
N = 90 
A = np.random.random((N,N)) 
np.fill_diagonal(A,.95) 
np.savetxt("z.txt",A) 

# Load the data 
A = np.loadtxt("z.txt") 

# Apply a mask so values below .9 don't show 
A[A<.9] = None 

# Scale the values from .9 to 1.0 using vmin,vmax 
plt.imshow(A, interpolation='nearest', vmin=.9,vmax=1.0,cmap=plt.cm.jet) 
plt.colorbar() 
plt.show() 

enter image description here

+0

太棒了。你能否給我建議一個鏈接或pdf,從那裏我可以瞭解更多關於Python構建圖形或圖形的信息。 – Angelo

+0

@Angelo「matplotlib」入門的好地方就是圖庫:http://matplotlib.sourceforge.net/gallery.html查找示例,圖片是生成它的代碼的鏈接。 – Hooked

1

從幫助頁面levelplot。總的想法是,這應該是一箇中等大長度的顏色矢量(比區域的數量更長,默認爲100)。預計這個矢量會逐漸變化(因此附近的顏色會相似)。當實際選擇顏色時,它們被選擇爲沿着這個向量等距分佈。當在col.regions中有多於顏色的區域時,顏色被回收。實際顏色分配由level.colors執行,其單獨記錄。

0

除了卡爾的回答是:

  • 可以通過例如設置默認col.regions

    `trellis.par.set (regions = list (col = rainbow)) 
    
  • 範圍的色標:見levelplot「s參數at

  • 行列名稱:見? xyplot,參數scales