1

ドットプロットを行うためにモザイク パッケージを使用して色付けされたドットを表示するにはどうすればよいですか?

library(mosaic)
n=500
r =rnorm(n)
d = data.frame( x = sample(r ,n= 1,size = n, replace = TRUE), color = c(rep("red",n/2), rep("green",n/2)))
dotPlot(d$x,breaks = seq(min(d$x)-.1,max(d$x)+.1,.1))

現在、すべてのドットは青色ですが、データ テーブルの色の列に従って色付けしたいと考えています。

4

2 に答える 2

3

解決策ではなくmosaic/解決策にまだ興味がある場合は、どうぞ。latticeggplot2

dotPlot( ~ x, data = d, width = 0.1, groups = color, 
  par.settings=list(superpose.symbol = list(pch = 16, col=c("green", "red"))))

結果のプロット

お知らせも

  • と同様ggplot2に、色は変数の値ではなくcolor、テーマによって決まります。を使用par.settingsして、プロットのレベルでこれをtrellis.par.set()変更したり、デフォルトを変更したりできます。
  • 数式を使用し、演算子を使用data =しないことをお勧めします。$
  • ビンの幅を設定するのwidthではなく、引数を使用できます。breaks(center重要な場合は、引数を使用してビンの中心を制御できます。デフォルトでは、0 がビンの中心になります。)
于 2016-01-15T04:24:39.353 に答える
1

stackgroups=TRUE2 つの異なる色が重なり合わないように追加する必要があります。

n=20
set.seed(15)
d = data.frame(x = sample(seq(1,10,1), n, replace = TRUE), 
               color = c(rep("red",n/2), rep("green",n/2)))
table(d$x[order(d$x)])
length(d$x[order(d$x)])
binwidth= 1

ggplot(d, aes(x = x)) + 
  geom_dotplot(breaks = seq(0.5,10.5,1), binwidth = binwidth, 
               method="histodot", aes(fill = color),
               stackgroups=TRUE) +
  scale_x_continuous(breaks=1:10)

また、ggplot は内部のカラー パレットを塗りつぶしの美学に使用します。データの「色」列の値を何と呼んだかに関係なく、同じ色が得られます。scale_fill_manual(values=c("green","red"))色を手動で設定する場合に追加します。

ここに画像の説明を入力

于 2015-09-01T22:21:57.960 に答える