0

df次のようなデータフレームがあります。

Id    Var1    Var2    Var3
001   yes     no      yes
002   no      no      yes
003   yes     yes     no

yesnoの比率を表す 3 つの棒グラフを作成したいと考えていますVar1 Var2 Var3。データフレームを再形成せずにそれを行うことは可能ggplotですか?

ありがとうございました、

コラード

4

1 に答える 1

1

すでに述べたように、データを再形成することをお勧めします。

ただし、元のデータ フレームを使用する必要がある場合はgeom_bar()、プロットに表示する列ごとに使用する必要があります。これらのバーを区切る値をgeom_bar()指定する必要がありますx- 私は変数名を文字として使用しました。バーが積み上げられていることを確認しますfill=。比率を計算します。position="stack"y=(..count..)/sum(..count..))

df <- read.table(text=
"Id    Var1    Var2    Var3
 001   yes     no      yes
 002   no      no      yes
 003   yes     yes     no",header=T)

library(scales)
library(ggplot2
ggplot(df)+
  geom_bar(aes(x="Val1",fill=Var1,y=(..count..)/sum(..count..)),position="stack")+
  geom_bar(aes(x="Val2",fill=Var2,y=(..count..)/sum(..count..)),position="stack")+
  geom_bar(aes(x="Val3",fill=Var3,y=(..count..)/sum(..count..)),position="stack")+
  scale_y_continuous("Percents",labels = percent) + 
  scale_x_discrete("Values")+
  scale_fill_discrete("Legend_title")

ここに画像の説明を入力

于 2013-02-18T12:19:32.253 に答える