简体   繁体   English

如何制作带有点和标签的箱线图?

[英]how to make the boxplots with dot points and labels?

I have a dataframe as below我有一个如下所示的数据框

    G1  G2      G3          G4      group
S_1 0   269.067 0.0817233   243.22  N
S_2 0   244.785 0.0451406   182.981 N
S_3 0   343.667 0.0311259   351.329 N
S_4 0   436.447 0.0514887   371.236 N
S_5 0   324.709 0   293.31  N
S_6 0   340.246 0.0951976   393.162 N
S_7 0   382.889 0.0440337   335.208 N
S_8 0   368.021 0.0192622   326.387 N
S_9 0   267.539 0.077784    225.289 T
S_10    0   245.879 0.368655    232.701 T
S_11    0   17.764  0   266.495 T
S_12    0   326.096 0.0455578   245.6   T
S_13    0   271.402 0.0368059   229.931 T
S_14    0   267.377 0   248.764 T
S_15    0   210.895 0.0616382   257.417 T
S_16    0.0401525   183.518 0.0931699   245.762 T
S_17    0   221.535 0.219924    203.275 T

Now I want to make a multiboxplot with all the 4 genes in columns.现在我想用列中的所有 4 个基因制作一个多箱图。 The first 8 rows are for normal samples an rest 9 rows are tumor samples so for each gene I should be able to make 2 box plots with labels of tissues.前 8 行是正常样本,其余 9 行是肿瘤样本,因此对于每个基因,我应该能够制作 2 个带有组织标签的箱线图。 I am able to make individual boxplots but how should I put all the 4 genes in one plot and also label the tissue for each boxplots and use the stripchart points.我能够制作单独的箱线图,但是我应该如何将所有 4 个基因放在一个图中,并为每个箱线图标记组织并使用带状图点。 Is there a easy way to do it?有没有简单的方法来做到这一点? I can only make individual plots using the row and column names but cannot mark the labels based on column groups in the plot and also plot the points with the stripchart.我只能使用行名和列名制作单独的图,但不能根据图中的列组标记标签,也不能用带状图绘制点。 Any help will be appreciated.任何帮助将不胜感激。 Thanks谢谢

with facet_wrap:使用 facet_wrap:

head(df)

    G1      G2        G3      G4 group
S_1  0 269.067 0.0817233 243.220     N
S_2  0 244.785 0.0451406 182.981     N
S_3  0 343.667 0.0311259 351.329     N
S_4  0 436.447 0.0514887 371.236     N
S_5  0 324.709 0.0000000 293.310     N
S_6  0 340.246 0.0951976 393.162     N

library(reshape2)
df <- melt(df)

library(ggplot2)
ggplot(df, aes(x = variable,y = value, group=group, col=group)) +      
facet_wrap(~variable, scales = 'free') + geom_boxplot()

在此处输入图片说明

Not sure what you mean with stripchart points, I assumed you wanted to visualize the actual points overlaid on the boxplots.不确定带状图点是什么意思,我假设您想可视化叠加在箱线图上的实际点。 Would the following suffice?以下就够了吗?

library(ggplot2)
library(dplyr)
library(reshape2)

melt(df) %>% 
 ggplot(aes(x = variable, y = value, col = group)) + 
 geom_boxplot() + 
 geom_jitter()

Where df is the above data frame.其中df是上述数据框。 Result:结果:

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM