我正在尝试使用ggplot2可视化RStudio上的交叉制表。我已经能够创建过去的情节,并且也完成了交叉制表,但是无法解决这个问题。有人可以帮忙吗?
这是我的x-tab代码:
library(dplyr)
data_dan %>%
group_by(Sex, Segment) %>%
count(variant) %>%
mutate(prop = prop.table(n))
这就是我创建情节的原因:
#doing a plot
variance_art_new.plot = ggplot(data_dan, aes(Segment, fill=variant)) +
geom_bar(position="fill")+
theme_classic()+
scale_fill_manual(values = c("#fc8d59", "#ffffbf", "#99d594"))
variance_art_new.plot
以下是我正在使用的数据示例:
Word Segment variant Position Sex
1 LIKE K R End Female
2 LITE T S End Male
3 CRACK K R End Female
4 LIKE K R End Male
5 LIPE P G End Female
6 WALK K G End Female
我的目标是将“性别”,“细分”的自变量绘制在一个框图上,对照因变量“变体”。 我包含了第一个代码,表明我可以创建一个表来显示这个交叉表,第二个是我通常用来运行一个独立变量的箱形图。
答案 0 :(得分:1)
我仍然不确定这是否能够满足您的要求,但如果您要求两个单独变量中的计数(或部分),您可以使用facet_wrap
来分隔两组。
(注意,所有这些都是使用theme_set(theme_bw())
运行的,因为我更喜欢这种类型的情节。)
使用内置数据集mtcars
,您可以获得计数:
mtcars %>%
ggplot(aes(x = factor(cyl), fill = factor(gear))) +
geom_bar() +
facet_wrap(~vs)
或者使用以下方式进行排序:
mtcars %>%
ggplot(aes(x = factor(vs), fill = factor(gear))) +
geom_bar() +
facet_wrap(~cyl, labeller = label_both)
您还可以使用position = "fill"
mtcars %>%
ggplot(aes(x = factor(vs), fill = factor(gear))) +
geom_bar(position = "fill") +
facet_wrap(~cyl, labeller = label_both) +
scale_y_continuous(name = "Within group Percentage"
, labels = scales::percent)