(我是R的新手)
我使用 reorder_within() 对条形图的每个方面内的变量进行重新排序,但这会在字符串末尾留下"___"后跟分面组的名称。我正在使用 ggplotly,所以它出现在悬停信息中并且看起来难看(而且太长)。有没有办法解决这个问题仍然使用 reorder_within() 或者我可以使用不同的函数在分面中重新排序?
我已经尝试使用 gsub("___.*", ", 列),但这删除了重新排序。
genepathways <- genepathways %>% mutate (Pathways = reorder_within (Pathways, -no_genes, Hallmark))
genepathwaysbp <- ggplot (genepathways)+
geom_col (mapping = aes (x = Pathways, y = no_genes, fill = Pathways))+
facet_wrap (~Hallmark, scales = "free")+
theme (legend.position = "none")+
theme (axis.text.x = element_blank ())+ #pathway names too long to fit, hence using plotly hover info to display this instead
scale_reordered_x()
(pp <- ggplotly (genepathwaysbp, tooltip = c("x", "y")))
使用类似的代码,在每一行和工具提示中如下所示: "pathwayname___facetgroupname"。我宁愿它只显示"路径名称"。
(有关信息,我使用了这个:https://juliasilge.com/blog/reorder-within/)
如果你仔细阅读Julia的帖子,她会在她的ggplot中包含tidytext
包中的scale_x_reordered()
。这应该会删除不需要的分面组名称。
您可以使用类似grep()
的内容在 Pathways 对象中查找字符串。然后,您可以使用该信息查找"pathwayname__facetgroupname"的每个实例,并将其替换为所需的实例。下面是一个替换字符串的示例:
Pathways[grep("pathwayname__facetgroupname", Pathways)] = "pathwayname"
这应该替换名称,而不会弄乱您的排序。