【发布时间】:2020-11-03 15:41:59
【问题描述】:
我创建了一个分面图(在 ggplot 中)来说明个人的活动数据(因此他们按参与者 ID 分面)。创建此图的data 格式很长。
What I have now: Individuals' data shown in a faceted pie chart plot
我使用下面的代码来生成上面的图表。
ggplot(reshaped_my_data_NAs_selected, aes(x = "", y = value, fill = variable)) +
geom_bar(width = 1, stat = "identity", color = "white") +
coord_polar("y", start = 0)+
scale_fill_manual(values=cbPalette, labels = c("Social Media", "Messaging", "Browsing", "Other Smartphone","Offline"))+
theme_void()+
facet_wrap(~PPNR, ncol = 18)+
labs(title = "Individuals' Activities Division", fill="Activity") +
theme(legend.position = "bottom",legend.box.spacing = unit(0.4, "cm"), plot.title = element_text(margin=margin(0,0,15,0),size=18))
现在,对于每个人,我都有一个变量,称为“最常用”,它表明该参与者完成的活动最多,我想根据此信息对参与者(即方面)进行分组。因此,使用社交媒体最多的参与者,使用消息应用程序最多的参与者也分组在一起,等等。理想情况下,图形的布局将保持不变(我非常喜欢它现在的样子),但如果布局会稍微改变一下,我可以忍受。
我也尝试过使用 facet_grid 的各种变体,但这些都没有给我想要的结果。我最接近我需要的是this,但我不希望单独的图表像那样展开,并且“最常用的活动”组在视觉上仍然不够分组。
目前我的替代策略是剪下单个图表并在 Photoshop 中重新排列它们,但我更愿意避免这种情况。呵呵
提前非常感谢!
【问题讨论】:
-
请使用
dput()或直接数据框,并发布一些示例数据。 -
我建议计算个人的组内排名,然后根据 y 方向的排名和 x 方向的活动来计算 facet_grid。您可以使用
geom_text()注释个人,而不是使用分面条来执行此操作。