4

同じプロットに複数のデータ系列を含むヒストグラムを作成したいと考えています。これを行うために私が見つけることができる最良の方法はmulthist(). に似たスタイルのプロットが必要です。またhist()ggplot()このタスクを実行するためにも使用できますが、グラフィックス スタイルは私が望むものではありません。

以下にデータの例を示します。

df <- structure(list(year = c(2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 
2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2012L, 
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 
2012L, 2012L, 2012L), count = c(187L, 199L, 560L, 1000L, 850L, 
400L, 534L, 911L, 390L, 1008L, 1173L, 1222L, 810L, 950L, 752L, 
1125L, 468L, 710L, 290L, 670L, 855L, 614L, 1300L, 950L, 670L, 
888L, 490L, 557L, 741L, 700L, 954L, 378L, 512L, 780L, 951L, 398L, 
1544L, 903L, 769L, 1399L, 1021L, 1235L, 1009L, 1222L, 255L)), .Names = c("year", 
"count"), class = "data.frame", row.names = c(NA, -45L))

そして、これまでに使用したコードは次のとおりです。

require(plotrix)
d2011<-df$count[df$year=="2011"]
d2012<-df$count[df$year=="2012"]
year<-list(d2011,d2012)
mh <- multhist(year, xlab="Count", ylab="Frequency", main="", cex.axis=1, col=c("dark gray", "light gray"), breaks=seq(0,1600, by=200))
box(bty="l", col="black")
legend.text<-c("2011","2012")
legend(locator(1), legend=legend.text, col=c("dark gray", "light gray"), pch=15, bty="n", cex=0.8)

これにより、「バープロット スタイル」のマルチ ヒストグラムが提供されますが、2 つのグラフ パラメータを変更する際に問題が発生します。

  1. プロットを棒グラフではなくヒストグラムに近づけたいので、まず列間のスペースを削除 (または縮小) します。を使用してみspace = NULLましたが、このコマンドは multhist では機能しないようです

  2. 軸の目盛りがプロット上の棒の間に存在し、軸のテキストが棒の中点ではなく目盛りに揃えられるように、x 軸を変更したいと思います。を使用してみaxis(side=1, …)ましたが、マルチストはリスト オブジェクトを使用してプロットを作成するため、これらのコマンドは機能しないようです。

どんな提案でも大歓迎です。複数のデータセットでヒストグラムをプロットできる他の便利なグラフィック パッケージの提案も歓迎します。

4

2 に答える 2

3

重ね合わせたヒストグラムには、密度プロットを使用することを好みます。特にビンが薄く、ケースが多い場合は、目に優しくなります。あなたのデータを使えば、これが得られます。

ggplot(df, aes(x=count,group=year,fill=as.factor(year))) + 
  geom_density(position="identity", alpha=0.5, breaks=seq(0,1600, by=200),right=TRUE) +
  scale_fill_discrete(name="Year") +
  theme_bw() +
  xlab("values")

密度プロット

于 2013-10-03T12:11:03.317 に答える