R に ~7000 行のデータフレームがあります。私のデータフレームの10行が表示されます-
TypeA TypeB Ct_for_typeA Ct_for_typeB
code3 code2 m n
code4 code1 m p
code3 code7 p n
code8 code6 n n
code1 code3 m p
code5 code8 n o
code2 code1 o p
code5 code5 p m
code7 code4 o m
code6 code1 m o
列 1 (TypeA) と列 2 (TypeB) には、code1 から code8 までの 8 つの異なるコードがあります。列 3 と列 4 には、m、n、o、p の 4 つの異なるカテゴリがあります。x軸にcode1からcode8、y軸に「パーセンテージ」の棒グラフをプロットしたいと思います。x 軸には 8 組のバーがあり、y 軸にはコードのパーセンテージが表示され、さらに列 3 (列 1 の場合) と列 4 (列 2 の場合) に従って各バーを異なる色のスタックで分割したいことを意味します。 . 例:
x 軸のコードの最初のペア、つまり code1 のみを考慮します。上記の 10 行から、「TypeA」の code1 が 10%、「TypeB」の code1 が 30% であることがわかります。したがって、最初のペアには 10% までの最初のバーと 30% までの 2 番目のバーがあります。これで、最初のペアの最初のバーが 3 番目の列に従って分割されます (積み上げられた色)。コード 1 には "m" しかないことがわかるように、色は "m" (全体の 10%) になりますが、"TypeB" のコード 1 の場合、つまり、最初のペアの 2 番目のバーは色 "p" で 20% に分割されます。色「o」で10%。
「beside=F」で色を重ねてみましたが、うまくいきました。つまり、1 列目と 3 列目だけあれば簡単にできるということです。しかし、2 番目と 4 番目の列に 2 番目のバーを含めると、混乱します。私の説明が混乱しないことを願っています。前もって感謝します。
編集:トーマスによるコメントの後。
「my_frame」が 10 行を超えるデータフレームの場合。私が使用した積み重ねられた色を持つ単一の変数の場合-
px=ggplot(my_frame,aes(x=TypeA,fill=Ct_for_typeA))+geom_bar()
print(px)
まず第一に、ここでは y 軸のパーセンテージを取得していません。次に、2 列目にあり、積み上げられた色が 4 列目にあるバーを「横に」配置するにはどうすればよいですか。