如何使用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),很难说您应该使用或不应该使用什么。您可以用您尝试使用的数据更新您的帖子吗?你到底期望什么样的产出?