乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      使用ggplot2美化Dotplot結(jié)果

       健明 2024-09-18 發(fā)布于廣東

      前情提要

      并且基于pbmc3k的數(shù)據(jù),使用Dotplot進行可視化和簡單調(diào)整。這期一起來了解一下,使用Dotplot參數(shù)調(diào)整美化結(jié)果,以及基于ggplot2進行可視化

      Dotplot可視化及美化

      示例數(shù)據(jù)為pbmc-3k的注釋分群后的數(shù)據(jù),使用FindAllMarkers查找并獲取top5的Marker基因進行可視化

      #top5 marker基因獲取

      pbmc.markers <- FindAllMarkers(pbmc, only.pos = TRUE, min.pct = 0.25,  logfc.threshold = 0.25, verbose = FALSE)

      top5 = pbmc.markers %>% group_by(cluster) %>% top_n(n = 5, wt = avg_log2FC)

      g = unique(top5$gene)

      默認參數(shù)繪圖及調(diào)整美化

      如果直接使用默認參數(shù),不調(diào)節(jié)參數(shù)展示的情況

      DotPlot(pbmc, features = g)

      可以看到橫坐標中features展示列全部擠在了一起,不便于閱讀。因為Dotplot繪圖是基于ggplot2的語法結(jié)構(gòu)的,所以可以調(diào)用ggplot2包里面的函數(shù)去傾斜展示基因,或者將基因和細胞亞群調(diào)換位置的方式進行調(diào)整

      1. 調(diào)節(jié)features的排列角度

      使用RotatedAxis()函數(shù)將坐標軸標簽旋轉(zhuǎn),讓features列展示的基因,由最開始的平鋪變?yōu)閮A斜,方便閱讀

      DotPlot(pbmc, features = g) + RotatedAxis()

      不過RotatedAxis()函數(shù)里面角度是確定了的,如果需要根據(jù)自己的需求調(diào)整角度可以使用theme()函數(shù)來調(diào)整x軸的具體傾斜角度

      DotPlot(pbmc, features = g) + 
        theme(axis.text.x=element_text(angle=70,hjust = 1))

      2.將features和identity調(diào)換位置

      • 使用coord_flip()函數(shù)翻轉(zhuǎn)坐標軸,使得圖形的布局更加合理。
      • 使用RotatedAxis()函數(shù)旋轉(zhuǎn)坐標軸標簽,以便更好地展示和閱讀。
      DotPlot(pbmc, features = g) + coord_flip()+ RotatedAxis()

      3. 分組展示Marker基因

      • 使用split函數(shù)按照基因列表以及分類列表進行分組,Marker基因?qū)⒏鶕?jù)它們所屬的群組(cluster)被分組顯示。
      • 基于cols函數(shù)指定點圖的顏色
      • 使用RotatedAxis函數(shù)將x軸標簽旋轉(zhuǎn)
      • 基于theme函數(shù)去調(diào)整坐標軸,設(shè)置文本顏色和大小、添加邊框、調(diào)整間距等
      DotPlot(pbmc,
              features = split(top5$gene, top5$cluster),
              cols = c("#ffffff""firebrick3")
      ) +
        RotatedAxis() + 
        theme(
          strip.text.x = element_text(size = 8),
          axis.text.x  = element_text(color="black",size=10),
          panel.border = element_rect(color = "black"),
          panel.spacing = unit(1, "mm"),
          axis.title = element_blank(),
          axis.text.y = element_blank(),
        )

      使用ggplot2繪圖及美化

      已經(jīng)有很多推文基于ggplot2去可視化及美化點圖:

      那這邊小謝就偷個懶,基于前輩們整理好的代碼來使用ggplot2繪制marker基因的點圖。

      1. 提取數(shù)據(jù)并整理細胞亞群排序

      #獲取需要的數(shù)據(jù)
      p <- DotPlot(pbmc,
                   features = split(top5$gene, top5$cluster),
                   cols = c("#ffffff""firebrick3")) 

      #重新整理細胞亞群的排列,倒序排列
      p$data$feature.groups2 <- factor(p$data$feature.groups, 
                                       levels = c("Platelet","DC","NK",
                                                  "FCGR3A+ Mono","CD8 T","B",
                                                  "Memory CD4 T","CD14+ Mono","Naive CD4 T"))
      p
      p$data

      2. 使用ggplot2繪圖

      ggplot2繪圖相關(guān)的內(nèi)容是需要反復(fù)練習(xí)的,如果沒有R語言基礎(chǔ)想要系統(tǒng)學(xué)習(xí)的話,可以了解一下生物信息學(xué)馬拉松授課,最近一期在廣州線下,歡迎大家來廣州相聚!

      ## 加載R包定義圖例顏色----
      library(ggh4x)
      library(RColorBrewer)

      strip <- strip_themed(
        background_x = elem_list_rect(fill = brewer.pal(9, "Paired")))

      ## 可視化----
      p1 <- p$data %>% 
        ggplot(aes(x = features.plot,
                   y = id)) + 
        geom_point(aes(size = pct.exp, 
                       color = avg.exp.scaled)) + 
        facet_wrap2(~feature.groups2, 
                    scales = "free_x"
                    strip = strip, 
                    nrow = 1) + 
        theme_classic() + 
        RotatedAxis()+
        theme(strip.text.x = element_text(size = 8),
              axis.text.x = element_text(color="black",size=10),
              axis.title = element_blank(),
              strip.background = element_rect(color = "white"),
              axis.text.y = element_blank()) + 
        scale_color_gradient(low = "#ffffff",
                             high = "firebrick3"
                             name = "avg.exp")

      p1

      這樣就得到了帶有背景顏色圖例的結(jié)果,為了簡潔將左邊的細胞亞群標簽信息使用axis.text.y = element_blank()不進行展示,當然我們也可以調(diào)整之后,將y軸的圖例加上

      3. 整理y軸標簽

      ## 圖例信息----
      library(ggplot2)

      df <- data.frame(x = 0, y = levels(pbmc), stringsAsFactors = F )
      df$y <- factor(df$y, levels = df$y )

      #通過shape選擇自己想要的圖例形狀
      p2 <- ggplot(df, aes(x, y, color = factor(y))) +
        geom_point(size = 6, shape = 18, show.legend = F) +
        scale_color_manual(values = rev(brewer.pal(9, "Paired"))) +
        theme_classic() +
        scale_x_continuous(expand = c(0,0)) +
        theme(
          plot.margin = margin(r=0),
          axis.title = element_blank(),
          axis.text.x = element_blank(),
          axis.text.y = element_text(size = 9),
          axis.ticks = element_blank(),
          axis.line = element_blank()
        )

      p2

      選擇了shape=18的實心菱形

      然后將整理好的圖例和點圖拼接到一起即可

      library(cowplot)
      plot_grid(p2, p1, align = "h", axis="bt", rel_widths = c(1.5, 9))

      小結(jié)

      這期基于ggplot2在Dotplot結(jié)果的基礎(chǔ)上進行調(diào)整,以及提取Dotplot的結(jié)果數(shù)據(jù),使用ggplot2進行美化和可視化

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多