3

ラティスライブラリのdensityplot関数を使用してデータを表示しようとしています。私のデータセットはかなり雑然としているので、下部にプロットされているシンボルのアルファ値を減らしたいと思います(オーバープロットの場合に、より明確なビューが得られます)。ただし、実際の密度曲線を同様に不透明にすることなく、これらのシンボルのアルファ値を変更することはできないようです。グラフのpar.settingsオプションを使用して、superpose.lineとに異なる値を設定していますsuperpose.symbol(これは、線の種類と記号を変更するために機能しますが、何らかの理由でアルファ値を変更するためには機能しません)。私の問題/現在のアプローチを説明するために、アイリスデータセットを使用して小さな例を作成しました。誰かアドバイスがあれば本当にありがたいです。

library(lattice) 
data(iris) 

graph.settings <- list(superpose.line = list(lty = 1:3, lwd = 2, alpha = 1),
                       superpose.symbol = list(pch = 1:3, alpha = 0.3)) 
densityplot( ~ Sepal.Length, data = iris, groups = Species, 
            auto.key = list(columns = 3), aspect = 1, 
            main = "Density Plot of Sepal Lengths", xlab = "Length (mm)", 
            par.settings = graph.settings)
4

1 に答える 1

6

これが簡単な解決策です。これは、2回呼び出す「カスタム」パネル関数を提供することで機能します。最初の呼び出しでは、 ;panel.densityplot()でラグポイントを取得します。alpha=0.32番目は、密度曲線を。でオーバープロットしalpha=1ます。

library(lattice) 
data(iris) 

graph.settings <- list(superpose.line = list(lty = 1:3, lwd = 2),
                       superpose.symbol = list(pch = 1:3)) 
densityplot( ~ Sepal.Length, data = iris, groups = Species, 
            auto.key = list(columns = 3), aspect = 1, 
            main = "Density Plot of Sepal Lengths", xlab = "Length (mm)", 
            par.settings = graph.settings,
            panel = function(x, ...) {
                panel.densityplot(x, ..., alpha = 0.3)
                panel.densityplot(x, ..., plot.points=FALSE, alpha = 1)
            })
于 2012-09-13T14:03:57.893 に答える