いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【R】ドットプロットを作りたい

・お題:とあるデータをドットプロットで示したい。

 

・ライブラリを読み込む。

> library(tidyverse)
> library(kableExtra) #ぽりぽりできるグラフを作る

 

・データセットを作る。 
> df <- 
+   data.frame(
+     GeneID = c("geneA", "geneB", "geneC"),
+     test_rep1 = c(1, 2, 3),
+     test_rep2 = c(1.1, 2.1, 3.1),
+     test_rep3 = c(1.2, 2.2, 3.3),
+     ctrl_rep1 = c(10, 2, 0.3),
+     ctrl_rep2 = c(11, 1.5, 0.2),
+     ctrl_rep3 = c(12, 0.5, 0.25))

 

・ぽりぽりできる表で表示する
> df %>% 
+   kbl() %>%
+   kable_styling(fixed_thead = TRUE,
+                 html_font = "Times New Roman")

・ドットプロット用のデータを作成する。
> df_dotplot <-
+   df %>% 
+   tidyr::pivot_longer(.,
+                       cols = -GeneID,
+                       names_to = "sample")
> df_dotplot

 

・サンプル名を実験条件にしたいので、_で割る。

> df_dotplot <-
+   df_dotplot %>% 
+   tidyr::separate(.,
+                   col = sample,
+                   into = c("group", "SampleID"),
+                   sep = "_")
> df_dotplot

 

・ggplot2で図示する。

> g <- 
+   ggplot(data = df_dotplot,
+          mapping =  aes(x = group, y = value))
> g <-
+   g +
+   geom_jitter(height=0, width =0.1) +
+   stat_summary(fun.y = mean, geom="point", size =5, color = "red", shape=3)+

+   theme_bw()+
+   facet_wrap(~ GeneID, scales = "free_y")
> plot(g)

 

おわり