2

私は ggplot2 を使用しており、同じヒストグラムに 2 つのデータ セットを表示する必要があり、それらを区別する必要があります。現時点では、各シリーズの色を 50% の不透明度に設定して、互いの背後に隠れているバーが見えるようにしていますが、これは理想とはほど遠いもので、見栄えが悪く、読み取るのが非常に混乱します。

R がバーをインテリジェントにオーバーレイして、完全に不透明なバーを使用でき、バーがビューから隠れないようにする方法はありますか? 現時点での私のコードは次のとおりです。

library(ggplot2)
dat <- data.frame(a=sample(10, size=100, replace=T),
                  b=sample(10, size=100, replace=T))
ggplot(dat, aes(x=a), fill=rgb(1,0,0,0.5)) + geom_histogram()
                           + geom_histogram(aes(x=b), fill=rgb(0,0,1,0.5))

不透明度 50% のバーのコード出力

どんなポインタでも大歓迎です。

4

1 に答える 1

6

長い形式で作業しposition_dodge、重なっているビンをかわすために使用します。それらをまだオーバーラップさせたい場合は、設定することもできalphaます

例えば

library(reshape2)
ldat <- melt(dat)


 # slight overlap
 ggplot(ldat, aes(x=value, colour = variable, fill = variable)) + 
    geom_histogram(position = position_dodge(width = 0.5), binwidth = 1, alpha =0.5)

ここに画像の説明を入力

# or the default value
ggplot(ldat, aes(x=value, colour = variable, fill = variable)) + 
  geom_histogram(position = 'dodge', binwidth = 1)

ここに画像の説明を入力

または、ファセットを使用することもできます。これは、もうオーバープロットしていないため、問題が解消されることを意味します

ggplot(ldat, aes(x=value)) + 
  geom_histogram(binwidth=1,fill = 'grey', colour = 'black') +
  facet_grid(~variable)

ここに画像の説明を入力

于 2013-04-15T01:00:47.243 に答える