質問

私はちょうど十字架が来ました この素敵なコード これにより、この散布マトリックスプロットが作成されます。

alt text
(ソース: free.fr)

また、ドットのサイズ/色を(下三角)にすることにより、Likretスケール変数(1〜5の整数)に実装したかったのです。 )。

ベースプロットメカニズムでこれを行う方法についてのアイデアはありますか?

アップデート:

私は次の機能を作成しましたが、ドットのスケールを常に「良い」ものにする方法がわかりませんが、どう思いますか?

panel.smooth2 <- function (x, y, col = par("col"), bg = NA, pch = par("pch"), 
                    cex = 1, col.smooth = "red", span = 2/3, iter = 3, ...) 
{
    require(reshape)
    z <- merge(data.frame(x,y), melt(table(x ,y)),sort =F)$value
    z <- z/ (4*max(z)) 

    symbols( x, y,  circles = z,#rep(0.1, length(x)), #sample(1:2, length(x), replace = T) ,
            inches=F, bg="blue", fg = bg, add = T)

    # points(x, y, pch = pch, col = col, bg = bg, cex = cex)
    ok <- is.finite(x) & is.finite(y)
    if (any(ok)) 
        lines(stats::lowess(x[ok], y[ok], f = span, iter = iter), 
            col = col.smooth, ...)
}



a1 <- sample(1:5, 100, replace = T)
a2 <- sample(1:5, 100, replace = T)
a3 <- sample(1:5, 100, replace = T)
aa <- data.frame(a1,a2,a3)


pairs(aa , lower.panel=panel.smooth2)
役に立ちましたか?

解決

使用できます」シンボル'(メソッド「線」、「abline」et al。)

この方法では、コードの単一行のシンボルサイズと色の両方を細かく制御できます。

「シンボル」を使用すると、シンボルのサイズ、色、形状を設定できます。形状とサイズは、各シンボルのサイズのベクトルを渡し、「円」、「正方形」、「長方形」、または「星」、「星」のいずれかに結合することによって設定されます。 5、1)。色は「BG」および/または「FG」で設定されています。

symbols( x, y, circles = circle_radii, inches=1/3, bg="blue", fg=NULL) 

質問の第2部を理解している場合、プロットのシンボルをスケーリングするために使用する関数が意味のある方法でそうすることを合理的に確認したいと思います。 「シンボル」関数スケール(たとえば) 半径 下の線の「z」変数(またはdata.frame列など)の値に基づく円の中で、最大記号サイズ(半径)を1/3インチとして設定します。半径の一部は小さく、最大の値よりもそのデータポイントの値の比率によって拡張されます。これに比例して、これは良い選択ですか?私は知りません - それは私には、直径や特に円周が良いかもしれないと私には思えます。いずれにせよ、それは些細な変化です。要するに、「サークル」が渡された「シンボル」は、「z」座標に比例してシンボルの半径を拡大します。おそらく、連続変数に最適です。離散変数/要因には、色( 'BG')を使用します。

「シンボル」を使用する1つの方法は、プロット関数を呼び出してtype = 'n'に渡すことです。これはプロットオブジェクトを作成しますが、次に「シンボル」関数でそれらを描画できるようにシンボルを描画することを抑制します。

この目的のために「CEX」をお勧めしません。 「CEX」は、テキストサイズとシンボルサイズの両方のスケーリング係数ですが、これらの2つのプロット要素のどれが渡すかによって異なります。プロット上。 「プロット」関数内で設定すると、シンボルサイズに影響します。

他のヒント

確かに、ただ使用してください cex:

set.seed(42)
DF <- data.frame(x=1:10, y=rnorm(10)*10, z=runif(10)*3) 
with(DF, plot(x, y, cex=z))

これにより、さまざまな円のサイズが得られます。色は単に4番目の次元になります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top