1

ggplot をすでに数回使用していますが、この問題を解決するのに本当に苦労しています。ggplot を使用しようとする忌まわしい試みをせずに、何をしたいのかを説明するのが最も簡単だと思います。

require(mice)
impute <- mice(nhanes, seed = 101)

counts <- table(nhanes$hyp)
barplot(counts, main="hyp", xlab="observed")

x11()
counts <- table(complete(impute,1)$hyp)
barplot(counts, main="hyp", xlab="Imputation 1")

x11()
counts <- table(complete(impute,2)$hyp)
barplot(counts, main="hyp", xlab="Imputation 2")

x11()
counts <- table(complete(impute,3)$hyp)
barplot(counts, main="hyp", xlab="Imputation 3")

x11()
counts <- table(complete(impute,4)$hyp)
barplot(counts, main="hyp", xlab="Imputation 4")

x11()
counts <- table(complete(impute,5)$hyp)
barplot(counts, main="hyp", xlab="Imputation 5")

ggplot でこれらの種類のバープロットを示す見栄えの良いプロット グリッドを作成したいと思います。

ldt <-complete(impute,"long", include=TRUE)and thenを使用する必要があると思いますが、その後melt(ldt, c(".imp",".id","hyp"))ggplot を呼び出す方法がわかりません:(

実際のデータにはさまざまな変数があり、これはカテゴリ変数にのみ適用されることに注意してください。関数を作成し、それを使用して実行できると考えてsapplyいましたが、カテゴリ列でのみですか? しかし、私はそれを行う方法についてあまり考えていません!

4

1 に答える 1

1

いくつかのポイント

  1. hyp要因として、または問題の変数が必要です。NAこれを行う前に、値を削除するのが最も簡単です。
  2. facet_wrap(1つの変数)またはfacet_grid(1つ以上の変数)は、プロットを適切に配置します。

例えば

ldt <-complete(impute,"long", include=TRUE)

ggplot(ldt[!is.na(ldt$hyp),], aes(x= factor(hyp))) + 
  geom_bar() + 
  facet_wrap(~.imp, nrow = 1) +
  xlab('Observed') +
  scale_y_continuous(expand = c(0,0))

ここに画像の説明を入力してください

長い形式で

今、あなたfacet_gridscales = 'free_y'

all_long <- melt(ldt, c(".imp",".id","hyp"))
ggplot(all_long[!is.na(all_long$hyp),], aes(x= factor(hyp))) + 
  geom_bar() + 
  facet_grid(variable ~.imp, scales = 'free_y') +
  xlab('Observed') +
  scale_y_continuous(expand = c(0,0))

ここに画像の説明を入力してください

于 2012-09-12T00:01:31.730 に答える