在R中,我希望通过使用“\n”防止长标签损坏图像

63lcw9qa  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(108)

我目前正在使用library(fgsea)在ggplot2中基于结果创建条形图。但是,长路径标签导致图像出现问题。我尝试使用stringr::str_wrap()和strwrap()解决此问题,但标签无法正确 Package 。您能建议如何解决此问题吗?

View(results)
                                        pathway         pval       padj        ES      NES nMoreExtreme size  leadingEdge
1                       GOCC_CORNIFIED_ENVELOPE 0.0001061684 0.01894047 0.8468409 2.168420            0   56 KRT77, C....
2                           GOBP_KERATINIZATION 0.0001061684 0.01894047 0.8465294 2.167623            0   56 KRT77, C....
3       GOBP_INTERMEDIATE_FILAMENT_ORGANIZATION 0.0001064849 0.01894047 0.7977803 2.037876            0   55 KRT77, K....
4                         GOCC_KERATIN_FILAMENT 0.0001105828 0.01894047 0.8149854 2.005688            0   39 KRT77, C....
5 GOMF_STRUCTURAL_CONSTITUENT_OF_SKIN_EPIDERMIS 0.0001156069 0.01917240 0.8476196 1.996867            0   28 KRT77, K....
6            GOMF_SEQUENCE_SPECIFIC_DNA_BINDING 0.0000999900 0.01894047 0.4561934 1.286778            0 1520 HOXD13, ....
jk9hmnmh

jk9hmnmh1#

由于strwrap假定了pathway中不存在的空格(" "),因此可以用空格替换_,对其进行字符串 Package ,然后折叠为一个字符串,也可以选择将_放回原处。

results$pathway |>
  gsub("_", " ", x=_) |>
  sapply(function(st) paste(strwrap(st, 25), collapse = "\n"), USE.NAMES=FALSE) |>
  gsub(" ", "_", x=_) |>
  gsub("\n", "\n_", x=_)
# [1] "GOCC_CORNIFIED_ENVELOPE"                           "GOBP_KERATINIZATION"                              
# [3] "GOBP_INTERMEDIATE\n_FILAMENT_ORGANIZATION"         "GOCC_KERATIN_FILAMENT"                            
# [5] "GOMF_STRUCTURAL\n_CONSTITUENT_OF_SKIN\n_EPIDERMIS" "GOMF_SEQUENCE_SPECIFIC\n_DNA_BINDING"

(This为了便于阅读而稍微拉长了一点,因此可以很容易地将其压缩为单个调用。)

相关问题