df
次のようなデータフレームがあります。
Id Var1 Var2 Var3
001 yes no yes
002 no no yes
003 yes yes no
yes
とno
の比率を表す 3 つの棒グラフを作成したいと考えていますVar1
Var2
Var3
。データフレームを再形成せずにそれを行うことは可能ggplot
ですか?
ありがとうございました、
コラード
すでに述べたように、データを再形成することをお勧めします。
ただし、元のデータ フレームを使用する必要がある場合は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")