Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R将三个百分比列绘制成堆叠百分比条形图?_R_Analytics - Fatal编程技术网

如何使用R将三个百分比列绘制成堆叠百分比条形图?

如何使用R将三个百分比列绘制成堆叠百分比条形图?,r,analytics,R,Analytics,我有三个值的原始总数,我一直希望在堆叠条形图中显示这些值,但我不知道如何显示这些值。 我有百分比值(.22,等等)和原始数字。 考虑到我正试图绘制三个比例,如何使用ggplot2创建堆叠条形图。我需要融化数据吗 我想做一些类似的事情: ggplot(数据,aes(填充=条件,y=值,x=种类))+ 几何图形栏(stat=“identity”,position=“fill”) 但我不知道怎么做,因为我的数据格式不正确。我应该使用dplyr吗 这是我的df: structure(list(date

我有三个值的原始总数,我一直希望在堆叠条形图中显示这些值,但我不知道如何显示这些值。
我有百分比值(.22,等等)和原始数字。
考虑到我正试图绘制三个比例,如何使用ggplot2创建堆叠条形图。我需要融化数据吗

我想做一些类似的事情: ggplot(数据,aes(填充=条件,y=值,x=种类))+ 几何图形栏(stat=“identity”,position=“fill”) 但我不知道怎么做,因为我的数据格式不正确。我应该使用dplyr吗

这是我的df:

structure(list(date = structure(c(17405, 17406, 17407, 17408, 
17409, 17410, 17411, 17412, 17413, 17414), class = "Date"), total_membership = c(1, 
1, 1, 1, 1, 188, 284, 324, 354, 390), full_members = c(1, 1, 
1, 1, 1, 188, 284, 324, 354, 390), guests = c(0, 0, 0, 0, 0, 
0, 0, 0, 0, 0), daily_active_members = c(1, 1, 1, 1, 1, 169, 
225, 214, 203, 254), daily_members_posting_messages = c(1, 0, 
1, 0, 1, 111, 110, 96, 67, 70), weekly_active_members = c(1, 
1, 1, 1, 1, 169, 270, 309, 337, 378), weekly_members_posting_messages = c(1, 
1, 1, 1, 1, 111, 183, 218, 234, 255), messages_in_public_channels = c(4, 
0, 0, 0, 1, 252, 326, 204, 155, 135), messages_in_private_channels = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), messages_in_shared_channels = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), messages_in_d_ms = c(1, 0, 0, 0, 
0, 119, 46, 71, 70, 122), percent_of_messages_public_channels = c(0.8, 
0, 0, 0, 1, 0.6792, 0.8763, 0.7418, 0.6889, 0.5253), percent_of_messages_private_channels = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), percent_of_messages_d_ms = c(0.2, 
0, 0, 0, 0, 0.3208, 0.1237, 0.2582, 0.3111, 0.4747), percent_of_views_public_channels = c(0.2857, 
1, 1, 1, 1, 0.8809, 0.9607, 0.945, 0.9431, 0.9211), percent_of_views_private_channels = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), percent_of_views_d_ms = c(0.7143, 
0, 0, 0, 0, 0.1191, 0.0393, 0.055, 0.0569, 0.0789), name = c(0, 
0, 0, 0, 0, 0, 0, 0, 0, 0), public_channels_single_workspace = c(10, 
10, 11, 11, 12, 12, 12, 13, 13, 13), messages_posted = c(35, 
35, 37, 38, 66, 1101, 1797, 2265, 2631, 3055)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))

下面是一个使用玩具数据集的示例,其中原始数据首先分组并汇总以获得“比例”,然后通过管道传输到ggplot,ggplot将自动创建堆叠条形图

df%分组依据(组、种)%>%汇总(perc=平均(数量))%>%
ggplot(aes(组、perc、填充=因子(物种))+
几何图形栏(stat='identity')

更新 这将计算“物种”在每个“群体”中出现的比例

df%>%groupby(group,species)%>%summary(n=n())%>%
分组依据(分组)%>%突变(perc=n/和(n))%>%
ggplot(aes(组、perc、填充=因子(物种))+
几何图形栏(stat='identity')

请阅读。如果没有示例数据(最好包括使用dput),很难说您应该使用或不应该使用什么。您可以用您尝试使用的数据更新您的帖子吗?你到底期望什么样的产出?