3

使用barchart()して次のようなものを取得すると(画像が棒グラフではないことはわかっていますがauto.key、同じ凡例が生成されます):

棒グラフ

ポイントを塗りつぶして大きくするか、対応する色の長方形に設定したいと思います。

使用するdensityplot()と、次のようなものが得られます。

密度プロット

できれば線を「太く」したいと思います。

4

3 に答える 3

6

を参照してください?xyplot。いくつかの詳細:

色の変更に関する最初の質問にはcol、引数を使用します。

barplot(table(mtcars$am, mtcars$gear), col = c("green", "yellow"))

ここに画像の説明を入力

しかし、棒グラフ (ここでは混乱しています) の代わりに散布図を扱いたい場合は、auto.key残念ながらオプションではありませんが、このようなものは問題なく動作します:

xyplot(mtcars$hp ~ mtcars$wt, groups = mtcars$gear, 
        key = list(text = list(as.character(unique(mtcars$gear))), 
                   points = list(pch = 10:12, col = 12:14)), pch = 10:12, col = 12:14)

ここに画像の説明を入力

2 番目の質問には、次を使用しますlwd

densityplot(mtcars$hp, lwd = 3)

ここに画像の説明を入力

于 2012-05-31T07:16:09.997 に答える
4

私は、本質的にこの同じ問題にかなりの時間を費やしました。何らかの理由で、@daroczig スタイルのアプローチは、密度プロットの線種 (キーを含む) の変更に対して機能しませんでした。

いずれにせよ、「正しい」アプローチは、次のように使用trellis.par.setすることだと思います。auto.key

# Maybe we'll want this later
old.pars <- trellis.par.get()

trellis.par.set(superpose.symbol=list(pch = 10:12, col = 12:14))
xyplot(hp ~ wt, data=mtcars, groups = gear, auto.key=TRUE)

# Optionally put things back how they were
trellis.par.set(old.pars)

実際には、この方法でタイピングが少なくなり (特に、元のトレリス パースの保存と復元を考慮しない場合)、冗長性が少なくなります (DRY コーディングが可能になります)。また、私の人生では、を使用して複数の列を簡単に作成する方法がわかりませんが、リストの要素の 1 つとしてkey追加できます。columnsauto.key

また、正しい要素を変更していることを確認してください。たとえば、変更した場合plot.symbol(これは確かに正しいことのように聞こえます)、何もしません。一般に、xyplot に基づくものについてsuperpose.*は、記号や線などを実際に変更するのに適切な要素だと思います。

于 2012-06-01T00:37:57.497 に答える
3

daroczig の答えは、この種の状況に直面したときに私が通常行うことです。latticeただし、一般的には、独自の色を指定するよりも、デフォルトの色を使用することを好みます。

これを行うことでそれを行うことができます:

lattice.theme <- trellis.par.get()
col <- lattice.theme$superpose.symbol$col
pl <- xyplot(X ~ Y, groups=Z, data=dframe, pch=1:nlevels(dframe$Z),
             type='o', key=list(text=list(levels(dframe$Z)), space='top',
                                points=list(pch=1:nlevels(dframe$Z), col=col),
                                lines=list(col=col),
                                columns=nlevels(dframe$Z)))
于 2012-05-31T09:29:00.313 に答える