散点图/火山图作为t.test的输出

时间:2019-01-23 10:22:36

标签: r ggplot2

这是我的数据

if (answered)
  this.submit();

我想创建一个漂亮的图表(明智的发布方式)来表示存储在此数据框中的数据。总的来说,我想用颜色/形状创建一个散点图或火山图,以指示什么对我的数据很重要。

我想实现这样的目标:

Scatterplot

或者:

Volcano plot

作为过滤器截止点,我们可以从以下开始:foldchange> 4&all_pvalue <0.05。我还希望仅突出显示几行(不同的颜色/形状和带有标签)。可以说,我想重点介绍Mark_23和Mark_65。

在R中可行吗?我已经尝试过火山图了。

> dput(data)
structure(list(foldchange = c(-0.17853057272962, 3.60013440830337, 
0.648944710423407, 1.38528656859267, 2.38882890772698, 1.91371568283765, 
1.77591931363495, -1.51447851175922, 3.1416903855924, 1.51711016957237, 
3.14707703341916, -1.44751697381751, 1.23658565660726, -0.512829478520189, 
1.68928069854351, 2.07214007434345, 1.24799276690488, 6.25149659558487, 
6.35918877435554, 5.86088034655694, 6.38890659730165, 5.05510489389194, 
4.62060389613534, 3.75508710774868, 4.18575763169519, 5.31627264153051, 
5.87091236649665, 6.71464565321037, 5.24000610137973, 4.25821377851955, 
7.32277714374523, 3.1963295806222, 7.26249808789293, 4.44427454088613, 
6.21495395454133, 8.74469985969472, 7.49982946564144, 4.45020943795387, 
5.66199031471621, 5.29959827685333, 8.65819317196484, 5.86664903755707, 
4.5740575604176, 8.24504501687473, 5.7916074097308, 4.18199181353134, 
6.73956641707995, 4.60357435173805, 5.9205153184753, 3.65014593638562, 
3.25607795403669, 5.56919529940933, 5.76811109641351, 6.10600807588152, 
5.69234974521511, 5.5102283323841, 4.71232921328194, 6.55727667796477, 
6.19995053763513, 4.64209842048131, 2.29238227264409, 6.79465189260383, 
7.51968952300944, 7.81695579226993, 6.29926703626301, 4.64687557749141, 
-2.44220257171186, 5.33199370895397, 5.18820654974805, 5.03498241997507, 
6.29395095024283, 6.27602377186869, 6.78363927671209, 2.93759015053983, 
6.65061604346668, 5.671080311536, 8.45199131823131, 5.79230415012306, 
6.3270025568739, 7.0934690916107, 3.53800869528685, 3.08683779646569, 
6.82111375813946, 3.02729078403818, 5.36024214796805, 4.04778690916444, 
5.74765756930797, 4.10788604670319, 6.39978058654016, 5.7746717387066, 
2.9247167920294, 7.54315906042106, 4.2742172444481, 6.61121261965006, 
3.77012175922873, 4.94407566887151, 7.93185716981795, 7.05304621480995, 
5.59261760605766, 5.42381827536197, 4.22645498896606, 5.15806113482742, 
4.15403623593809, 6.40153592433128, 7.38902001442131, 2.72654942454391, 
3.28741231093207, 3.79334363176751, 5.86527050546341, 5.10320299162235, 
3.99883612485974, 6.45475273104195, 4.85567883821983, 6.55055641729645, 
5.03746875764267, 7.27660375171087, 3.30817125205364, 5.23766518187252, 
7.6588755830143, 3.53552741086444, 5.66455197986778, 8.40623211540503, 
3.93151438658523, 4.26875667827774, 4.38704995079332, 6.75232207417316, 
3.76563594385214, 6.08008097541859, 2.40905905886796, 5.50981339395085, 
5.78780269825563, 0.2322416329745, 5.69410860233132, 4.94656296117567, 
4.20594226169741, 4.50293112094816, 6.07430576125864, 3.67684848946483, 
5.825851099141, 5.22439201628482, 7.72829018644622, 5.24910611944979, 
4.01783420322782, 6.3888069709767, 5.26066649741256, 4.81678726754752, 
6.5683773907454, 4.86957242886115, 6.76705114368644, 4.45769029291236, 
7.77607596853254, 6.85213457577069, 1.40150885676552, 5.43409652313493, 
3.21738153172066, 6.23015085020594, 5.50091556711613, 3.99948543388746, 
5.85816098688073, 4.33775608630599, 5.91715214825299, 5.45674826103132, 
7.66790792082782, 6.63325838131012, 3.89631178894691, 2.38526575667126, 
1.58661549426288, 4.76626341270591, 6.73426272316295, 5.54006035262931, 
4.07996836453406, 7.12087390022358, 6.96007461543701, 5.68202490906633, 
6.58504044389069, 5.41036820315057, 6.61076809589319, 1.23772469006557, 
4.1661166499875, 2.94059625298825, 8.38336956160413, 4.84906289871508, 
4.93787691221829, 6.82379835301371, 5.82520798412864, 4.87582657907206, 
5.36621724700676, 8.91922991774938, 3.49025109999629, 5.1232073414505, 
4.27193651596412, 5.07417945071012, 3.61930149745523, 2.7469092502892, 
6.67162003616042, 4.86698118654996, 7.53876919017093, 4.58878989189686, 
5.78956520376246, 3.98567045767003, 8.14934433289609, 6.88879716040936, 
7.00251456012974, 5.05095662412332, 6.39777439550296, 7.96268799093557, 
4.82826575143863, 8.31032763539508, 4.74493707321909, 6.8929416113222, 
6.84202549278968, 8.20121430968127, 2.91031632522241, 4.86190488550545, 
5.5516465446887, 7.74996457744065, 2.25505738807845, 5.71069872298306, 
1.97493599527532, 5.60445326341706, 6.39297603198736, 7.16298115056911, 
4.52688105225386, 6.46061751569601, 4.78104064111529, 2.84526825975018, 
6.5537923066898, 6.98258253798747, 5.0967396817644, 6.64593966293456, 
4.8990397150507, 4.59878411928317, 5.55158425631398, 2.1065660739172, 
2.40396884881286, 6.45421536580342, 5.98567305090568, 6.48593538806214, 
7.41313242816247, 5.99024340460149, 5.63812101302136, -1.43793573368627
), all_pvalue = c(0.818887590433193, 0.00892139546812015, 0.434133425685163, 
0.0536266013313456, 0.0450933986128537, 0.0367856407800243, 0.0941222253709068, 
0.213526299326008, 0.00855327289085924, 0.0449444491492238, 0.00465098209958804, 
0.0369667514121697, 0.0910501610463896, 0.378892060498093, 0.0595757077704777, 
0.031626850730261, 0.0878934608628569, 0.0124722939899662, 0.0249040599008334, 
0.0150448394759397, 0.0104024068916351, 0.0340577599419123, 0.0244947271472485, 
0.122485247246688, 0.0211309039009709, 0.0201043058824927, 0.0152779076456381, 
0.00938733157248341, 0.013807428170544, 0.01948348499862, 0.0119978631408916, 
0.0997968486684091, 0.00504808432168479, 0.041226720485986, 0.0127407583225205, 
0.00709338243276709, 0.00383605674079435, 0.0399854589187244, 
0.0163222001450531, 0.00909800553027099, 4.81144191594885e-06, 
0.0105231068132293, 0.0377428014886314, 0.00709059633291303, 
0.00743882656849872, 0.0696633906261403, 0.00568508439144595, 
0.0142206230933159, 0.0183625193075117, 0.0818974933908099, 0.0609423408539195, 
0.00581572852382799, 0.00603085345605447, 0.00684099077236254, 
0.0194814381299995, 0.0325641567545152, 0.0404062983698557, 0.00626431765905907, 
0.00287654691487974, 0.0183318967557602, 0.202860908663261, 0.0033395497287839, 
0.00804091896430431, 0.00524635934550195, 0.0100089274728679, 
0.00470611875383887, 0.361169323059008, 3.90129727113067e-06, 
0.0205225005371219, 0.0120500045076898, 0.00732055098038156, 
0.0229916087025324, 0.00544774481324614, 0.108252753362848, 0.00911923198666818, 
0.0122812312739145, 0.00343585528287351, 2.06257208918569e-05, 
0.000904993210532763, 0.0015065294739414, 0.102118204143709, 
0.118350948568527, 0.0136202759386966, 0.15251012082679, 0.0428316882385798, 
0.0752744217284719, 0.00632986043900174, 0.0269567937932686, 
0.00707537967267082, 0.0149356605279715, 0.163005190656644, 0.00929612911973378, 
0.0196453775259569, 0.0133262667903121, 0.114115405959882, 0.0189109801950218, 
0.00590387539250432, 0.00802692325541374, 0.0184346327727756, 
0.00104714399950925, 0.0554774130259537, 0.0084910975380844, 
0.0349856904843115, 0.0124547169142572, 8.60050865459788e-07, 
0.1188515828269, 0.133720711339729, 0.0641704698591151, 0.0075124796175742, 
3.94432669779951e-07, 0.0740343932996142, 0.00160775849728933, 
6.61326355967731e-06, 0.0106610228625055, 0.00539717052083514, 
0.00492255859958016, 0.122531121480312, 0.0159768620962635, 0.00365780586610517, 
0.0135086464724098, 0.0256265865459836, 0.00391215568816396, 
0.0271580638871089, 0.0512876942387616, 0.0135566028247977, 0.0169110062500104, 
0.0848247460082605, 0.0158705161056627, 0.176345767878009, 0.0124719098589431, 
0.0152388258990332, 0.866066700538701, 0.042979313425954, 0.0160125031962862, 
0.0441592105265668, 0.0124108545467876, 1.80875437447348e-06, 
0.0704671677844812, 0.0111351361909711, 1.62883074487165e-07, 
0.000694779973318456, 0.0120079549431507, 0.0196183531679123, 
0.0100186493225724, 0.0173294242221405, 0.0573614373022037, 1.30612522568528e-07, 
0.023898721968545, 0.00665918028588502, 0.06907634259105, 0.00518730999717143, 
0.0109717740506543, 0.394662670743417, 0.0165847750353483, 0.0593829446004973, 
0.000113216713641592, 0.0222583368635018, 0.0694462386106761, 
0.00437955933335859, 0.0631677226779205, 0.00649674049335009, 
1.10699021652115e-07, 0.00543997929535101, 0.00292890932795308, 
0.021574456097881, 0.17997075681454, 0.279770535484078, 0.050945514039484, 
0.0102923410906512, 0.0103389721465925, 0.112227938286441, 0.00398090342551613, 
0.0428676019413789, 0.00337313863923396, 0.0092822848687081, 
0.00778850900332348, 0.00146877357609246, 0.448950342618974, 
0.0801294647165026, 0.0797698230881222, 3.72112644308374e-05, 
0.00728653989704988, 0.0320006421510141, 0.000420503611946363, 
0.0207086037412542, 0.0448889114898146, 6.94555482668648e-07, 
0.000135994029220134, 0.0982385638169219, 0.0130399195487442, 
0.0297056523919866, 0.0208455457844783, 0.104595177359326, 0.100684824982166, 
0.00110472016462074, 0.0664329210478157, 0.0140428240948167, 
0.0468861767036331, 0.0102813794498838, 0.0693803856754811, 0.00566014993761021, 
0.00275831473628789, 0.00234550137829788, 0.0116252548991317, 
0.0143153463606759, 0.00995352784254985, 0.00238257560505637, 
0.00182950280683248, 0.013195116994233, 0.000640921917352429, 
0.000171523469251389, 0.0087256530793244, 0.0989386901919075, 
0.0321103798387662, 0.0222773975090858, 0.007943310795799, 0.171053950985746, 
0.012874269835152, 0.38817395138115, 0.00787508757030877, 0.0114487159712535, 
0.0187831808209386, 0.0452479566115196, 0.00640720682677851, 
0.0315482155790946, 0.125132833439637, 0.0115284490664364, 0.00538397509568388, 
0.00517772137814985, 0.00176762574966497, 0.0273122011845722, 
0.0191341545126795, 0.0235413416908084, 0.270326642321866, 0.179926862630332, 
0.008734949388329, 0.0138918131322944, 0.00507817315892406, 0.000173786133243839, 
0.00225184544628237, 0.0181059516295825, 0.541544494598043), 
    probename = c("Mark_1", "Mark_2", "Mark_3", "Mark_4", "Mark_5", 
    "Mark_6", "Mark_7", "Mark_8", "Mark_9", "Mark_10", "Mark_11", 
    "Mark_12", "Mark_13", "Mark_14", "Mark_15", "Mark_16", "Mark_17", 
    "Mark_18", "Mark_19", "Mark_20", "Mark_21", "Mark_22", "Mark_23", 
    "Mark_24", "Mark_25", "Mark_26", "Mark_27", "Mark_28", "Mark_29", 
    "Mark_30", "Mark_31", "Mark_32", "Mark_33", "Mark_34", "Mark_35", 
    "Mark_36", "Mark_37", "Mark_38", "Mark_39", "Mark_40", "Mark_41", 
    "Mark_42", "Mark_43", "Mark_44", "Mark_45", "Mark_46", "Mark_47", 
    "Mark_48", "Mark_49", "Mark_50", "Mark_51", "Mark_52", "Mark_53", 
    "Mark_54", "Mark_55", "Mark_56", "Mark_57", "Mark_58", "Mark_59", 
    "Mark_60", "Mark_61", "Mark_62", "Mark_63", "Mark_64", "Mark_65", 
    "Mark_66", "Mark_67", "Mark_68", "Mark_69", "Mark_70", "Mark_71", 
    "Mark_72", "Mark_73", "Mark_74", "Mark_75", "Mark_76", "Mark_77", 
    "Mark_78", "Mark_79", "Mark_80", "Mark_81", "Mark_82", "Mark_83", 
    "Mark_84", "Mark_85", "Mark_86", "Mark_87", "Mark_88", "Mark_89", 
    "Mark_90", "Mark_91", "Mark_92", "Mark_93", "Mark_94", "Mark_95", 
    "Mark_96", "Mark_97", "Mark_98", "Mark_99", "Mark_100", "Mark_101", 
    "Mark_102", "Mark_103", "Mark_104", "Mark_105", "Mark_106", 
    "Mark_107", "Mark_108", "Mark_109", "Mark_110", "Mark_111", 
    "Mark_112", "Mark_113", "Mark_114", "Mark_115", "Mark_116", 
    "Mark_117", "Mark_118", "Mark_119", "Mark_120", "Mark_121", 
    "Mark_122", "Mark_123", "Mark_124", "Mark_125", "Mark_126", 
    "Mark_127", "Mark_128", "Mark_129", "Mark_130", "Mark_131", 
    "Mark_132", "Mark_133", "Mark_134", "Mark_135", "Mark_136", 
    "Mark_137", "Mark_138", "Mark_139", "Mark_140", "Mark_141", 
    "Mark_142", "Mark_143", "Mark_144", "Mark_145", "Mark_146", 
    "Mark_147", "Mark_148", "Mark_149", "Mark_150", "Mark_151", 
    "Mark_152", "Mark_153", "Mark_154", "Mark_155", "Mark_156", 
    "Mark_157", "Mark_158", "Mark_159", "Mark_160", "Mark_161", 
    "Mark_162", "Mark_163", "Mark_164", "Mark_165", "Mark_166", 
    "Mark_167", "Mark_168", "Mark_169", "Mark_170", "Mark_171", 
    "Mark_172", "Mark_173", "Mark_174", "Mark_175", "Mark_176", 
    "Mark_177", "Mark_178", "Mark_179", "Mark_180", "Mark_181", 
    "Mark_182", "Mark_183", "Mark_184", "Mark_185", "Mark_186", 
    "Mark_187", "Mark_188", "Mark_189", "Mark_190", "Mark_191", 
    "Mark_192", "Mark_193", "Mark_194", "Mark_195", "Mark_196", 
    "Mark_197", "Mark_198", "Mark_199", "Mark_200", "Mark_201", 
    "Mark_202", "Mark_203", "Mark_204", "Mark_205", "Mark_206", 
    "Mark_207", "Mark_208", "Mark_209", "Mark_210", "Mark_211", 
    "Mark_212", "Mark_213", "Mark_214", "Mark_215", "Mark_216", 
    "Mark_217", "Mark_218", "Mark_219", "Mark_220", "Mark_221", 
    "Mark_222", "Mark_223", "Mark_224", "Mark_225", "Mark_226", 
    "Mark_227", "Mark_228", "Mark_229", "Mark_230", "Mark_231", 
    "Mark_232", "Mark_233", "Mark_234", "Mark_235", "Mark_236", 
    "Mark_237", "Mark_238", "Mark_239", "Mark_240", "Mark_241", 
    "Mark_242")), row.names = c("Mark_1", "Mark_2", "Mark_3", 
"Mark_4", "Mark_5", "Mark_6", "Mark_7", "Mark_8", "Mark_9", "Mark_10", 
"Mark_11", "Mark_12", "Mark_13", "Mark_14", "Mark_15", "Mark_16", 
"Mark_17", "Mark_18", "Mark_19", "Mark_20", "Mark_21", "Mark_22", 
"Mark_23", "Mark_24", "Mark_25", "Mark_26", "Mark_27", "Mark_28", 
"Mark_29", "Mark_30", "Mark_31", "Mark_32", "Mark_33", "Mark_34", 
"Mark_35", "Mark_36", "Mark_37", "Mark_38", "Mark_39", "Mark_40", 
"Mark_41", "Mark_42", "Mark_43", "Mark_44", "Mark_45", "Mark_46", 
"Mark_47", "Mark_48", "Mark_49", "Mark_50", "Mark_51", "Mark_52", 
"Mark_53", "Mark_54", "Mark_55", "Mark_56", "Mark_57", "Mark_58", 
"Mark_59", "Mark_60", "Mark_61", "Mark_62", "Mark_63", "Mark_64", 
"Mark_65", "Mark_66", "Mark_67", "Mark_68", "Mark_69", "Mark_70", 
"Mark_71", "Mark_72", "Mark_73", "Mark_74", "Mark_75", "Mark_76", 
"Mark_77", "Mark_78", "Mark_79", "Mark_80", "Mark_81", "Mark_82", 
"Mark_83", "Mark_84", "Mark_85", "Mark_86", "Mark_87", "Mark_88", 
"Mark_89", "Mark_90", "Mark_91", "Mark_92", "Mark_93", "Mark_94", 
"Mark_95", "Mark_96", "Mark_97", "Mark_98", "Mark_99", "Mark_100", 
"Mark_101", "Mark_102", "Mark_103", "Mark_104", "Mark_105", "Mark_106", 
"Mark_107", "Mark_108", "Mark_109", "Mark_110", "Mark_111", "Mark_112", 
"Mark_113", "Mark_114", "Mark_115", "Mark_116", "Mark_117", "Mark_118", 
"Mark_119", "Mark_120", "Mark_121", "Mark_122", "Mark_123", "Mark_124", 
"Mark_125", "Mark_126", "Mark_127", "Mark_128", "Mark_129", "Mark_130", 
"Mark_131", "Mark_132", "Mark_133", "Mark_134", "Mark_135", "Mark_136", 
"Mark_137", "Mark_138", "Mark_139", "Mark_140", "Mark_141", "Mark_142", 
"Mark_143", "Mark_144", "Mark_145", "Mark_146", "Mark_147", "Mark_148", 
"Mark_149", "Mark_150", "Mark_151", "Mark_152", "Mark_153", "Mark_154", 
"Mark_155", "Mark_156", "Mark_157", "Mark_158", "Mark_159", "Mark_160", 
"Mark_161", "Mark_162", "Mark_163", "Mark_164", "Mark_165", "Mark_166", 
"Mark_167", "Mark_168", "Mark_169", "Mark_170", "Mark_171", "Mark_172", 
"Mark_173", "Mark_174", "Mark_175", "Mark_176", "Mark_177", "Mark_178", 
"Mark_179", "Mark_180", "Mark_181", "Mark_182", "Mark_183", "Mark_184", 
"Mark_185", "Mark_186", "Mark_187", "Mark_188", "Mark_189", "Mark_190", 
"Mark_191", "Mark_192", "Mark_193", "Mark_194", "Mark_195", "Mark_196", 
"Mark_197", "Mark_198", "Mark_199", "Mark_200", "Mark_201", "Mark_202", 
"Mark_203", "Mark_204", "Mark_205", "Mark_206", "Mark_207", "Mark_208", 
"Mark_209", "Mark_210", "Mark_211", "Mark_212", "Mark_213", "Mark_214", 
"Mark_215", "Mark_216", "Mark_217", "Mark_218", "Mark_219", "Mark_220", 
"Mark_221", "Mark_222", "Mark_223", "Mark_224", "Mark_225", "Mark_226", 
"Mark_227", "Mark_228", "Mark_229", "Mark_230", "Mark_231", "Mark_232", 
"Mark_233", "Mark_234", "Mark_235", "Mark_236", "Mark_237", "Mark_238", 
"Mark_239", "Mark_240", "Mark_241", "Mark_242"), class = "data.frame")

有人可以帮助我进一步发展吗?

1 个答案:

答案 0 :(得分:3)

这里尝试显示可能的情况

data$zones := interaction(abs(data$foldchange)>4,data$all_pvalue<0.05)
library(ggplot2)
library(ggrepel)
ggplot(data = data, aes(x = foldchange, y = -1*log10(all_pvalue),color = zones))+
  geom_point()+
  theme_light()+
  geom_label_repel(aes(label=ifelse(probename %in% c("Mark_23","Mark_65"),as.character(probename),"")),
                   box.padding   = 0.35, 
                   point.padding = 0.5,
                   segment.color = 'grey50',show.legend = FALSE) +
  geom_hline(yintercept = -1*log10(0.05),linetype = "dashed")+
  geom_vline(xintercept = 4,linetype = "dashed")+
  scale_color_manual(labels = c("bad", "also bad","good","not sure"), values = c("gray50","green","blue", "red"))+
  labs(x = "fold change",
       y = expression(log[10](p)),
       color = "meaning")

enter image description here

这里有很多东西。 geom_label_repel中的library(ggrepel)允许您将要显示的几个点与标签链接起来。具有不同颜色的最简单方法是创建一个变量,该变量说明您所在的区域。这就是我对zones变量所做的事情,您在colour中使用了该变量来改变颜色。您可以使用scale_color_manual函数手动更改它。

labs函数中,我使用了expression函数,该函数允许您执行上标。您当然可以更改主题,包括边距,轴,文本大小等。

例如,您可以将theme(legend.position="top")添加到绘图中,以使图例位于顶部。