1

levelplot()Rと格子からの関数を使用してヒートマップを作成しています。

私が使用しているコマンドは次のとおりです。

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

そして私はこのような姿を手に入れます

1

三つのこと:

(a)行ラベルが汚れていますが、これを解決してより明確な行ラベルを取得するにはどうすればよいですか?

(b)デフォルト(ピンク、白、青)の代わりに赤、緑、青の色を使用するにはどうすればよいですか?

(c)スケールを0.84ではなく0.90から1に微調整することは可能ですか?

Pythonのソリューションも歓迎されます。その場合、90 * 90(行*列)の相関ファイルがあります。たとえば、ファイル名はz.txtです。

4

3 に答える 3

1

のヘルプページからlevelplot

col.regions
領域がTRUEの場合に使用される色ベクトル。一般的な考え方は、これは適度に長い長さ(領域の数よりも長い。デフォルトでは100)のカラーベクトルである必要があるということです。このベクトルの色は徐々に変化すると予想されます(近くの色が似ているように)。色が実際に選択されるとき、それらはこのベクトルに沿って等間隔になるように選択されます。の色よりも領域が多い場合はcol.regions、色がリサイクルされます。実際の色の割り当ては、によって実行されlevel.colorsます。これは、個別に文書化されています。

于 2012-05-23T11:17:55.013 に答える
1

Pythonmatplotlibでは、あなたの質問に対する答えは次のとおりです。

imshow(a)オプションでプロットinterpolation="nearest"

(b)カラーマップは、たとえばimshowオプションで選択できます。ここに他の例がありますcmap=cm.jet

(c)スケーリングするには、しきい値の値のみを表示し、それに応じてカラーバーマップを作成することを想定しています。imshowオプションvmaxとを使用しますvmin

最小限の作業例を次に示します。

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()

ここに画像の説明を入力してください

于 2012-05-23T14:09:13.540 に答える
0

カールの答えに加えて:

  • col.regionsあなたは例えばによってデフォルトを設定することができます

    `trellis.par.set (regions = list (col = rainbow))
    
  • カラースケールの範囲:levelplotのパラメータを参照してくださいat

  • 行名と列名:? xyplot、パラメータを参照してくださいscales

于 2012-05-23T13:25:29.840 に答える