我在 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)有 8 个不同的代码,从 code1 到 code8。第 3 列和第 4 列有 4 个不同的类别,即 m、n、o 和 p。我想在 x 轴上用 code1 到 code8 绘制条形图,在 y 轴上绘制“百分比”。这意味着 x 轴将有 8 对条形图,y 轴将显示代码的百分比,并且我想根据第 3 列(对于第 1 列)和第 4 列(对于第 2 列)用不同的颜色堆栈划分每个条形图. 例子:
仅考虑 x 轴上的第一对代码,即 code1。从以上 10 行中,我们可以看到“TypeA”中的 code1 为 10%,“TypeB”中为 30%。所以第一对有第一条直到 10% 和第二条直到 30%。现在将根据第 3 列划分第一对的第一条(堆叠颜色)。我们可以看到只有“m”和code1,颜色将是“m”(全部10%)但是对于“TypeB”中的code1,即第一对的第二条将被分成20%,颜色为“p”和 10% 的颜色为“o”。
我尝试用“beside = F”堆叠颜色并且它正在工作。这意味着如果我只有第一列和第三列,我可以轻松完成。但是包括第 2 列和第 4 列的第二条让我感到困惑。我希望我的解释不会令人困惑。提前致谢。
编辑:在托马斯发表评论之后。
如果“my_frame”是超过 10 行的数据框。对于具有堆叠颜色的单个变量,我使用了-
px=ggplot(my_frame,aes(x=TypeA,fill=Ct_for_typeA))+geom_bar()
print(px)
所以首先,这里我没有得到 y 轴上的百分比,其次,我怎样才能把第二列的“旁边”栏和堆叠的颜色放在第四列。