使用barchart()
して次のようなものを取得すると(画像が棒グラフではないことはわかっていますがauto.key
、同じ凡例が生成されます):
ポイントを塗りつぶして大きくするか、対応する色の長方形に設定したいと思います。
使用するdensityplot()
と、次のようなものが得られます。
できれば線を「太く」したいと思います。
使用barchart()
して次のようなものを取得すると(画像が棒グラフではないことはわかっていますがauto.key
、同じ凡例が生成されます):
ポイントを塗りつぶして大きくするか、対応する色の長方形に設定したいと思います。
使用するdensityplot()
と、次のようなものが得られます。
できれば線を「太く」したいと思います。
を参照してください?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)
私は、本質的にこの同じ問題にかなりの時間を費やしました。何らかの理由で、@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
追加できます。columns
auto.key
また、正しい要素を変更していることを確認してください。たとえば、変更した場合plot.symbol
(これは確かに正しいことのように聞こえます)、何もしません。一般に、xyplot に基づくものについてsuperpose.*
は、記号や線などを実際に変更するのに適切な要素だと思います。
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)))