R 使用ggplot创建多个变量的组合条形图
我正在尝试使用以下数据创建频率(在R 使用ggplot创建多个变量的组合条形图,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我正在尝试使用以下数据创建频率(在%terms中)条形图: >fulldata Type Category Sal 0 Sal 0 Sal 1 Sal 0 Sal 1 Sal 1 Self 1 Self 0 Self 1 Self 0 Self 0 因此,我试图创建一个条形图(使用ggplot),它在fulldata中同时显
%terms
中)条形图:
>fulldata
Type Category
Sal 0
Sal 0
Sal 1
Sal 0
Sal 1
Sal 1
Self 1
Self 0
Self 1
Self 0
Self 0
因此,我试图创建一个条形图(使用ggplot),它在fulldata中同时显示Sal
和Self
的百分比,在Category==1
中同时显示Sal
和Self
的百分比(标签为%value)。
我试图通过过滤fulldata中的Category==1
来创建一个单独的数据框,但它们彼此重叠。我尝试了以下方法:
> Category1 = fulldata[which(fulldata$Category==1),]
ggplot(fulldata, aes(x=Type,y = (..count..)/sum(..count..)))+
geom_bar()+
geom_label(stat = "count", aes(label=round(..count../sum(..count..),3)*100),
vjust=1.2,size=3, format_string='{:.1f}%')+
scale_y_continuous(labels = scales::percent)+
labs(x = "Type", y="Percentage")+
geom_bar(data = Category1, position = "dodge", color = "red")
*原始数据大约有80000行。一个可能的解决方案是从计算
ggplot2
的所有比例开始
这里有一个假例子:
df%分组依据(类别、类型)%%>%count()%%>%
透视图(名称从=类别,值从=n)%>%
突变(总数=`0`+`1`)%>%
枢轴长度(-Type,name_to=“Category”,value_to=“n”)%>%
组别(类别)%>%
变异(百分比=n/总和(n))
#一个tibble:6x4
#组别:组别[3]
类型类别n%
1 Sal 0 27 0.458
2萨尔1220.537
3总人数490.49
4自0 32 0.542
5自我1190.463
6自我总计51 0.51
然后,如果您的序列是ggplot2
,则可以在一个序列中获得条形图:
df%>%分组依据(类别、类型)%>%count()%>%
透视图(名称从=类别,值从=n)%>%
突变(总数=`0`+`1`)%>%
枢轴长度(-Type,name_to=“Category”,value_to=“n”)%>%
组别(类别)%>%
变异(百分比=n/和(n))%>%
ggplot(aes(x=重新排序(类别,描述(类别)),y=百分比,填充=类型))+
geom_col()+
几何图形文本(aes(标签=比例::百分比(百分比)),位置=位置堆栈(0.5))+
比例y连续(标签=比例::百分比)+
实验室(y=“百分比”,x=“类别”)
它回答了你的问题吗?有没有什么方法可以直接使用ggplot而不是创建一个新的频率表,因为我有很多变量?在
ggplot2
中这样做真的很难,因为你有“类别计数”和“全部计数”这两种方法,这非常棘手。我编辑了我的答案,向您展示了如何在单个管道序列中进行操作,而无需计算各种类别。如果可以,请告诉我。我收到以下错误:``错误:此tidyselect接口尚不支持谓词。``我从未见过此错误。您使用的是哪个版本的tidyverse
,R
,Rstudio
?你试过我提供的例子了吗?