本文介绍了在heatplot ggplot瓷砖之间的空白区域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我有使用ggplot2生成的这个热图。 我想要做的是在用大写字母列出的变量和以小写字母列出的变量以便分开这两个类别。我仍然希望瓷砖的宽度相等。 我用来生成图的代码是: ggplot(mockdata,aes(variable,Measurement))+ geom_tile(aes(fill = mockdata $ plotval),color =dark red)+ scale_fill_gradient2(limits = c(-20,20),high = firebrick3,low =dodgerblue4)+ theme_minimal()+ theme(axis.text.x = element_text(size = 28,angle = 90),axis.text.y = element_text(size = 28) )+ labs(title =,x =,y =,fill =) 我的数据如下所示: >头(mockdata)测量变量Pval effect >方向plotval类别21 20 A 4.511987e + 04 > -0.004892941 -1 -4.6543678实测22 19 A 3.436853e-08 0.054344854 1 7.4638390实测23 18 A 1.465755e + 00 0.355139910 1 -0.1660613实测24 > 17 A 7.006222e-04 -0.079390247 -1 3.1545161测得25 > 16 A 4.705051e-04 -0.017708611 -1 3.3274357测得26 > 15 A 2.301113e + 03 -0.022934623 -1 -3.3619379测量的 PS。虽然这完全是另一个问题,但我也想编辑图例,使其范围从0到20不等,并且分成两个垂直方向,一边显示红色渐变和蓝色渐变。 非常感谢您的帮助。 $ b 编辑:根据请求输出输出 dput(mockdata)$ (测量=结构(c(20L,19L,18L,17L, 16L,15L,14L,13L,12L,11L,10L,9L,8L,7L,6L,5L,4L) ,3L, 2L,1L,20L,19L,18L,17L,16L,15L,14L,13L,12L,11L,10L, 9L,8L,7L,6L,5L,4L,3L ,2L,1L,20L,19L,18L,17L,16L, 15L,14L,13L,12L,11L,10L,9L,8L,7L,6L,5L,4L,3L,2L, b 1L,20L,19L,18L,17L,16L,15L,14L,13L,12L,11L,10L,9L, 8L,7L,6L,5L,4L,3L,2L,1L,20L,19L 18L,17L,16L,15L, 14L,13L,12L,11L,10L,9L,8L,7L,6L,5L,4L,3L,2L,1L, 20L,19L,18L ,17L,16L,15L,14L,13L,12L,11L,10L,9L,8L, 7L,6L,5L,4L,3L,2L,1L,20L,19L,18L,17L,16L,15L ,14L, 13L,12L,11L,10L,9L,8L,7L,6L,5L,4L,3L,2L,1L,20L, 19L,18L,17L,16L,15L,14L ,13L,12L,11L,10L,9L,8L,7L, 6L,5L,4L,3L,2L,1L,20L,19L,18L,17L,16L,15L,14L,13L, b 12L,11L,10 L,9L,8L,7L,6L,5L,4L,3L,2L,1L),标签= c(1,2,3,4,5 6,7,8,9,10,11,12,13,,14,15,16,17 ,18,19,20,21,22,23,24,25,26,27,28 29,30,31,32,33,34,35,,36,37,38,39,40 (1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L,1L, 1L,1L, 1L,1L,1L,2L,2L,2L,2L,2L,2L,2L,2L,2L,2L,2L,2L,2L, 2L,2L, 2L,2L,2L,2L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L,3L, 3L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L,4L, $ 5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L,5L, 5L,5L,5L,6L,6L, 6L,6L,6L,6L,6L,6L,6L,6L,6L,6L, 6L,6L,6L,6L,6L,6L,6L,7L,7L,7L,7L,7L,7L, 7L,7L,7L, 7L,7L,7L,7L,7L,7L,7L,7L,7L,7L,7L,7L,8L,8L,8L,8L,8L, 8L, 8L,8L,8L,8L,8L,8L,8L,8L,8L,8L,8L,8L,9L,9B, 9L,9L,9L,9L,9L,9L, 9L,9L,9L)。标签= c(A,B,C,a,b,c ,d,e,f),class =factor),Pval = c(45119.8699435164,3.43685309800565e-08, 1.46575455003134,0.000700622204341352,0.000470505115493356, 2301.1126328306,4.54797845872279e-09,2.82713540460051,7.27455376527109, 0.000708124149686762,2.42898037459018,129.848099736546,0.199979430821282, 3.14108095159057,1.27073870790998,107.060952494286,5853.27997745224, 0.0742582348172777,0.179994821770633,896.77644657471,23.2401456908433, 1.04257158400361e-05,0.818717078694074,0.000516863241751892, 0.445544049614064,37.9699212955842,4.87750761132064,0.138732186303325, 0.0185924820003653,30.8203248121754,2.40190754411345,61.2579350060232, 6.44618209352764,1047821.38958175,704454.528072486,1184.40676026588, 9.27799786552194,244051 0.746539605,375048.779613815,9134.54101073437, 3.11905288061898e-08,2.00150860109179e-05,7.0931638758186e-05, 2.43242155771004,1602.73424833609,6.02923321145412,3.21794638623681, 39545.9388361236,475.781444413131,455.686197237482,4.67829129583755, 909.58298359142,2.02989433872695e-12,0.000760836775114312, 0.000112864936813818,0.00189775331609849,0.0815921243521161, 31.0427655620544,64.1785732227039,0.00217933417639979,0.32663419999951, 2.54891270451988e-07,8.48612397192046e-08,0.370184441863085 , 0.0773444299723239,1580.93083600716,25.4862794021994,30.2642707469218, 224.214639928028,14.7414363362227,18.0511919451453,21037.258121794, 21659.968905852,17721957.0100965,41240.6588986806,111.028537460958, 21.7975275086975,276.44178388089,171.535750708364,6.54776065462672, 151.823636593007,77.7232628471612,378439.528032194,8.9932059191815e-10, 7.49689679316569e-08,0.0155924907385915, 1032.31959077079,69.010587250471, 3136.70323628637,249713.871697334,19360.5708508639,40.7258690163879, 0.0162957051889601,1.02869393872855e-06,0.025268197376688, 0.528481476061038,0.982629085096339,9.45655313066933e-07,4.57557582847333e-05, 7.45403294058092e-05,4.53918933391971 3.30530837062386e-13 0.630234341296706 9.82668496529192e-08 8.53389810467837e-08 9.02891336492619 5451.02888390797 3.90681590706977 329.545150676593 103.491400305633 697.038514954349 222.73520900148 ,10798.3042798457, 21.0644243649671,43176.6607108169,4235.53654423626,3100.32036580987, 0.474678829666085,6.40621457829452,122.637549472055,43.0666245228938, 12.0250322640284,61440.278302552,6788575.58160297,51.9360282881212, 769.96899739087,7.59005145509618e-09, 2.43526615569376e-14, 7.39725489778816e-07,0.000232784090617743,2.71678851958226e-05, 7.42801688358956e-06,0.000419885957835749,13.5780839769886 , 3.32442709394189,0.335486082296544,3.94230896978352,1.46425278783307, 8.69549979650646,596385.229504125,0.000115943040096764,3628.23773839244, 49454.7726336256,0.000504974333790079,0.00995546823577904, 0.233933121119438,0.363364289185792,9193.93256769758,354.456908896329, 5661.68504768727,0.121589829029783,940.93343158607,2.03003608173289e-18, 0.0149649659043151,4.52682955802236e-10,7.15334079727642e-09, 0.000310851843411754,1.93389728243117e-06,2.03883508956486e-07, 0.00284517176384008, 540.061334125012,21318282.1015595,14894.4660549342, 0.000266471541489485,0.246672590081899,0.102617416010794,30584.5294303485, 1.6644151457974,0.274144521451231,5.61250055231602,801087.819256331, 649321.765215902,1.09526223361541,3.19905699111348e-05,0.383890848761449, 895.643897487244 ,2.68459116542856,26.4804232740359,5.94041739131986, 1.53119475830081e-07),效应= c(-0.0048929408170183,0 0.0543448544236634, 0.355139910284011,-0.0793902472151885,-0.0177086113171934, -0.0229346227548993,0.0859476877708055,0.0616530901499479, 0.0255808327961239,0.0587050814255305,0.0141476490245787,0.016845032477233, 0.0534824934671667,0.109055235276048,0.111112652283139,0.0234941463950778, 0.0509358202565552,0.0252735688725701,0.0359067099796669,0.00562271637183446, 0.0507704293161921,0.17283228087345,0.16140675832248,-0.0818286747635847, -0.00755469414427661,-0.0104447567093411,-0.128088271682644, -0.0534210973538898,-0.373370146687058,-0.0158548424704536 , -0.0748163315974356,-0.0904460324042191,-0.0028512716452736, 0.014271561838011,-0.00190156753813359,-0.0239279177026479, -0.0094336807819733,0.0222425549129021,0.0292506342181443, 0.0325754202368439,0.0148015986703938,0.0421882264651577,0.423260142208342, 0.0203382101649578,0.00402969463133637,0.0866038959569813, -0.012618 0724522637,-0.00101624925914612,0.0424729539424711, 0.0109268890743347,-0.100768815837666,-0.00606344260837149, -0.0909174554780339,-0.0959700647301915,-0.0768705808220001, -0.0662807953036616,-0.00706464147110935,-0.0260825101925435, - 0.116360501719279,-0.0685817739681672,0.0190371136722137, 0.314176452865903,0.0852019981707266,-0.109955683402951,-0.0429494359040651, -0.018893257986317,0.0359280715736875,-0.00777719486360404, 0.0268854711195253,0.035717165605315,-0.0185632636448169,0.00219893106540​​051, -0.0575168050187894,-0.0268860255228866,-0.0120997481434518, -0.0174770295188239,-0.0365387268315564,0.00427667014560775, 0.0290413811465955,-0.0303874959875708,0.0494496371834744, -0.0172878730121681,-0.0596619493875312,0.0674472930186462, 0.0581172695200586, 0.0352865160196343,-0.0390338901505756, 0.0201101954340249,0.0968644367520139,-0.00587675128187206, -0.09902230127504 21,-0.022532243059551,-0.109508938534005, -0.0828800247402709,-0.0224991372217077,-0.0864470271893071, -0.0120276456354962,-0.171616504240665,-0.0405716645109222, -0.150207882114913,0.019187309212901,0.083618216547288,0.312977089073896, -0.116708039798045,-0.0727212548658722,-0.0334904589242441, 0.0250211767009604,-0.0262773156800457,-0.00638328497889965, 0.0207436409328599,0.00526977878443117,0.0121248749949723, 0.0372084648778052,0.0119773388777849,0.0299841410899367,0.0179852238184209, 0.00615922907815808, 0.0923011852715508,0.0286655081413075, 0.0615892570124506,-0.040101427234219,0.00471273799312188, -0.0695325837078327,-0.0194435878635383,-0.0113447270023325, -0.052896201189637,0.15391622949438,0.0625317280746324,0.305195811975115, 0.0175140430499281,0.0944330305254164,0.125486034995771 ,0.204097960624017, 0.0139041133925463,0.115503245160239,0.0744749299835659,0.03094011 53645095, 0.0774734185854047,0.128577840642144,-0.00523940764293137, -0.0826725654792668,0.00061718469555555,-0.139447399226457, -0.015892803158233,-0.0776351210087576,-0.114375795737603, 0.506655172546014,0.0139569906287469,0.032593809131997,0.0838209562382717, 0.026889024005808,0.114847700394033,0.0344957168306127,0.309849172983949, 0.224583305802426,0.0920680732068372,0.20205450223499,0.129261938040113, 0.118741527574873,0.0666598681717314,-0.0259685736746482,-0.00493768230442141, -0.0513043909367941,-0.0228292902998043,-0.125120892334107 , -0.0354061460089046,-0.145910823420589,-0.0505094213129978, -0.357522550450534,-0.0492725484140125,-0.00672879449498781, -0.00498836470563034,0.0857101915123005,0.245202106389044, 0.0652610111098569,0.00803793757485241,0.0456354806905821, 0.0567597911088563,0.155069881077418,0.0398552868265476),方向= c(-1, 1,1,1,-1,-1,1,1 ,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,-1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,1,-1,-1,-1, 1,1,1,1,1,1,1,1,1,-1 ,-1,1,1,-1,-1,-1,-1,-1, -1,-1,-1,-1,-1,1,1,1,-1 ,-1,-1,1,-1,1,1,-1,1, -1,-1,-1,-1,-1,1,1,-1,1, - 1,-1,1,1,1,1,1,1,-1, -1,-1,-1,-1,-1,-1,-1,-1, - 1,-1,1,1,1,-1,-1,-1, 1,-1,-1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,-1,-1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1 ,-1,-1,1,-1,-1, -1,-1,1,1,1,1,1,1,1,1,1,1,1,1 ,1,-1,-1,-1, -1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,1 ,1,1,1,1), plotval = c(-4.65436783913808,7.4638390305887,-0.166061251006543, 3.15451610300161,3.3743565041216,3.36193787665198,8.34218160099397, -0.45134660936061,-0.861806358039495,3.14989059429165 , -0.385424005854277,-2.11343559832442,0.699014672037075, -0.497079129132047,-0.104056259146589,-2。 02963110287305, -3.7673992980343,1.12925537854411,0.744739988834407,-2.95268419318977, -1.36623884628847,4.98189411623867,0.0868661499973576, 3.28662435286223,0.351109352101632,-1.57943969693098,-0.68819795578​​0953, 0.857822769551858,1.73066263028667, - 1.48883721139058,-0.380556286225031, -1.78716235272839,-0.809302569419764,-6.02028725962301, -5.84785296501876,-3.073500877557,-0.967454268269813,-5.38748192000237, -5.57408775663275,-3.96068672995749,7.50597726212444,4.69864253925926, 4.14916000637992,-0.386038843759309,-3.20486151733282, -0.780262082752201,-0.507578804102515,-4.59710189032113, -2.67740750044583,-2.65866587397551,-0.670087259849411, -2.95884232700787,11.6925265676543,3.11870850390026,3.94744095721937, 2.72176024102353,1.08835175932808,-1.49196040507446,-1.8073900579076, 2.66167617047025,0.485938344726535,6.59364 503804761,7.0712906280104, 0.431581837757606,1.1157095694052,-3.19891287043981,-1.40630643990113, -1.48093021354005,-2.35066396611971,-1.16853980119637, -1.25650588425321,-4.32298913566366,-4.3356578288347,-7.24851167871111, -4.61532559535481,-2.04543461904724,-1.33840723441989, -2.4416036868115,-2.23435464751167,-0.816092795927033, -2.18133938975974,-1.89055102413018,-5.57799649218455, 9.04608546234764,7.12511846787433,1.80708450523289,-3.01381416921109, -1.83891572308132,-3.49647343200987,-5.39744266823951, -4.28691815843339,-1.6098703601382,1.7879268409032,5.98771381910823, 1.59742573937338,0.276970230656392,0.00761038521452666, 6.02426713306055,4.33955424293266,4.12760869236016,-0.656978297958022, 12.4807880165375,0.200497935929844,7.00759296681644,7.06885254695129, -0.955635485860221,-3.73647848327309,-0.591822947332438 , -2.51791492529225,-2.01490426327141,-2.84325677575944, -2.34778887382083,-4.03335556106781,-1.32354959550492, -4.63524905089898,-3.62690843318892,-3.49140657316158, 0.323600137070818,-0.806601481409993, - 2.08862346391581, -1.63414083395139,-1.08008625029083,-4.78845317422705, -6.83177865764632,-1.71546873469442,-2.88647323876581, 8.11975527988995,13.6134535668385,6.13092941593436,3.63304670440456, 4.56594416664396,5.1291271177969,3.37686864914492, -1.13283849034736, -0.521716813134629,0.474325491909851,-0.595750658150867, -0.165616059566562,-0.939294549263021,-5.77552687887169, 3.93575531635149,-3.55969573624066,-4.6942082095516,3.29673069510235, 2.0019383089733,0.630908284813054, 0.439657756641714,-3.96350131412125, -2.54956344582082,-3.75294570645333,0.915102752209537, -2.97355889939168,17.6924962428955,1.8249242683 0489,9.34420585704084, 8.14549108393769,3.50744655283763,5.71356659688074,6.6906179005526, 2.54589150999432,-2.732443084933,-7.32875220486331,-4.17302493900107, 3.57434916575198,0.607879106033299,0.98877892542788,-4.48550180288597, -0.221261659119412 ,0.562020428705443,-0.749156396749516, -5.90368012822885,-5.81245996063456,-0.039518112762786, 4.49497802290257,0.415792240525927,-2.95213537116121,-0.428878156658466, -1.42292492276573,-0.773816960869839,6.81496956627369),测量,测量,测量,测量,测量,测量,测量,测量,测量, 测量测量测量测量测量测量测量测量测量测量 测量,测量,测量,测量,测量,测量,测量,测量,测量测量,测量,测量,测量,测量,测量,测量,测量,测量,测量 测量测量测量测量测量测量测量测量测量测量测量,测量,测量,测量,测量,测量,测量,测量,测量,测量 ,派生的,派生的,派生的,派生的,派生的,派生的,派生的,派生的派生,派生,派生,派生,派生,派生,派生,派生,衍生 ,派生,派生,派生,派生,派生,派生,派生,派生,衍生派生,派生,派生,派生,派生,派生,派生,衍生 ,派生,派生 ,衍生,衍生,派生,派生,派生,派生,派生,派生,衍生派生,派生,派生,派生,派生,派生,派生,派生 ,派生的,派生的,派生的,派生的,派生的,派生的,派生的,派生的派生,派生,派生,派生,派生,派生,派生,派生,衍生 ,派生,派生,派生,派生,派生,派生,派生,派生,衍生派生,派生,派生,派生,派生,派生,派生,衍生 ,派生的,派生的,派生的,派生的,派生的,派生的,衍生的,派生的 ,.Names = c(Measurement,variable,Pval, (21L, 22L,23L,24L,25L,26L,27L,28L,29L,30L,31L,32L ,33L,34L, 35L,36L,37L,38L,39L,40L,61L,62L,63L,64L,65L,66L,67L, 68L,69L,70L,71L,72L,73L ,74L,75L,76L,77L,78L,79L,80L, 101L,102L,103L,104L,105L,106L,107L,108L,109L,110L,111L,$ b $ 112L,113L,114L ,115L,116L,117L,118L,119L,120L,141L,142L, 143L,144L,145L,146L,147L,148L,149L,150L,151L,152L,153L,$ b $ 154L,155L ,156L,157L,158L,159L,160L,181L,182L,183L,184L, 185L,186L,187L,188L,189L,190L,191L,192L,193L,194L,195L, 196L ,197L,198L,199L,200L,221L,222L,223L,224L,225L,226L, 227L,228L,229L,230L,231L,232L,233L,234L,235L,236L,237L, b 238L,239L,240L,261L,262L,263L,264L,265L,266L,267L,268L, 269L,270L,271L,272L,273L,274L,275L,276L,277L,278L,279L, b $ b 280L,301L,302L,303L,304L,305L,306L,307L,308L,309L,310L, 311L,312L,313L,314L,315L,316L,317L,318L,319L,320L,341L, 342L,343L,344L,345L,346L,347L,348L,349L,350L,351L, 352L, 353L,354L,355L,356L,357L,358L,359L,360L),class =data.frame) 解决方案 选项1 使用构面 mockdata $ type = ifelse(mockdata $ variable%in%LETTERS [1:3],1,2) ggplot mockdata)+ facet_wrap(〜type,scales ='free_x')+ geom_tile(aes(variable,Measurement,fill = mockdata $ plotval),color =dark red)+ scale_fill_gradient2(limits = c(-20,20),high =firebrick3,low =dodgerblue4)+ theme_minimal()+ theme(axis.text.x = element_text(size = 28) ,angle = 90),axis.text.y = element_text(size = 28))+ labs(title =,x =,y =,fill =) 选项3 另一种解决方案是为每个类别创建单独的图并将它们排列在一起。在这里,我使用 cowplot :: plot_grid 将它们放在一起,它允许我们设置相对宽度(我们希望它们的方式)(尽管您可能需要稍微调整rel_widths值以获得它只是正确的): library(cowplot) p1 scale_fill_gradient2(limits = c(-20,20)=1),])+ geom_tile ,high =firebrick3,low =dodgerblue4)+ theme_minimal()+ 主题(axis.text.x = element_text(size = 28,angle = 90),axis.text.y = element_text(size = 28), legend.position =none)+ labs(title =,x =,y =,fill =) p2 geom_tile(aes(variable,Measurement,fill = plotval),color =dark red )+ scale_fill_gradient2(limits = c(-20,20),high =firebrick3,low =dodgerblue4)+ theme_minimal()+ theme(axis.text。 X = element_te xt(size = 28,angle = 90),axis.text.y = element_blank())+ labs(title =,x =,y =,fill =) plot_grid(p1,p2,nrow = 1,rel_widths = c(1,2)) 选项4 数据中的一个额外因素级别,位于要分隔的列之间,然后以白色为该列绘制图块。 mockdata = rbind(mockdata, data.frame(Measurement = 1:20, variable =, Pval = NA, effect = NA,方向= NA, plotval = 0, category =Measured)) mockdata $ variable = factor(mockdata $ variable,levels = c(A, B,C,,a,b,c,d,e,f)) ggplot(mockdata,aes变量,度量))+ geom_tile(fill = NA,color = NA)+ geom_tile(data = mockdata [which(mockdata $ variable ==),],fill =white, color =white)+ geom_tile(data = mockdata [which(mockdata $ variable!=),],aes(fill = plotval),color =dark red)+ scale_fill_gradient2 (limits = c(-20,20),high =firebrick3,low =dodgerblue4)+ theme_minimal()+ theme(axis.text.x = element_text(size = 28,角度= 90),axis.text.y = element_text(size = 28))+ labs(title =,x =,y =,fill =) I have this heatplot that I've generated using ggplot2.What I would like to do is to add white space between the variables listed in capital letters and the variables listed in lower case letters so as to separate these two categories. I still want the tiles to be of equal width.The code I've used to generate the plot is: ggplot(mockdata, aes(variable, Measurement)) + geom_tile(aes(fill = mockdata$plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_text(size=28)) + labs(title="", x="", y="", fill="")And my data looks as follows:> head(mockdata) Measurement variable Pval effect> direction plotval category 21 20 A 4.511987e+04> -0.004892941 -1 -4.6543678 Measured 22 19 A 3.436853e-08 0.054344854 1 7.4638390 Measured 23 18 A 1.465755e+00 0.355139910 1 -0.1660613 Measured 24> 17 A 7.006222e-04 -0.079390247 -1 3.1545161 Measured 25> 16 A 4.705051e-04 -0.017708611 -1 3.3274357 Measured 26> 15 A 2.301113e+03 -0.022934623 -1 -3.3619379 MeasuredPS. While it is strictly another question, I would also like to edit the legend so that it ranges simply from 0-20 and is split in two vertically, showing on one side the red gradient and the blue gradient on the other.Thank you very much for your help.Edit: dput output as requested dput(mockdata)structure(list(Measurement = structure(c(20L, 19L, 18L, 17L,16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L,2L, 1L, 20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L,9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 20L, 19L, 18L, 17L, 16L,15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L,1L, 20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L,8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 20L, 19L, 18L, 17L, 16L, 15L,14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L,20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L,7L, 6L, 5L, 4L, 3L, 2L, 1L, 20L, 19L, 18L, 17L, 16L, 15L, 14L,13L, 12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L, 20L,19L, 18L, 17L, 16L, 15L, 14L, 13L, 12L, 11L, 10L, 9L, 8L, 7L,6L, 5L, 4L, 3L, 2L, 1L, 20L, 19L, 18L, 17L, 16L, 15L, 14L, 13L,12L, 11L, 10L, 9L, 8L, 7L, 6L, 5L, 4L, 3L, 2L, 1L), .Label = c("1","2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13","14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24","25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35","36", "37", "38", "39", "40"), class = "factor"), variable = structure(c(1L,1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L,4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L,6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L,8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L,9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L,9L, 9L, 9L), .Label = c("A", "B", "C", "a", "b", "c", "d", "e","f"), class = "factor"), Pval = c(45119.8699435164, 3.43685309800565e-08,1.46575455003134, 0.000700622204341352, 0.000470505115493356,2301.1126328306, 4.54797845872279e-09, 2.82713540460051, 7.27455376527109,0.000708124149686762, 2.42898037459018, 129.848099736546, 0.199979430821282,3.14108095159057, 1.27073870790998, 107.060952494286, 5853.27997745224,0.0742582348172777, 0.179994821770633, 896.77644657471, 23.2401456908433,1.04257158400361e-05, 0.818717078694074, 0.000516863241751892,0.445544049614064, 37.9699212955842, 4.87750761132064, 0.138732186303325,0.0185924820003653, 30.8203248121754, 2.40190754411345, 61.2579350060232,6.44618209352764, 1047821.38958175, 704454.528072486, 1184.40676026588,9.27799786552194, 244051.746539605, 375048.779613815, 9134.54101073437,3.11905288061898e-08, 2.00150860109179e-05, 7.0931638758186e-05,2.43242155771004, 1602.73424833609, 6.02923321145412, 3.21794638623681,39545.9388361236, 475.781444413131, 455.686197237482, 4.67829129583755,909.58298359142, 2.02989433872695e-12, 0.000760836775114312,0.000112864936813818, 0.00189775331609849, 0.0815921243521161,31.0427655620544, 64.1785732227039, 0.00217933417639979, 0.32663419999951,2.54891270451988e-07, 8.48612397192046e-08, 0.370184441863085,0.0773444299723239, 1580.93083600716, 25.4862794021994, 30.2642707469218,224.214639928028, 14.7414363362227, 18.0511919451453, 21037.258121794,21659.968905852, 17721957.0100965, 41240.6588986806, 111.028537460958,21.7975275086975, 276.44178388089, 171.535750708364, 6.54776065462672,151.823636593007, 77.7232628471612, 378439.528032194, 8.9932059191815e-10,7.49689679316569e-08, 0.0155924907385915, 1032.31959077079, 69.010587250471,3136.70323628637, 249713.871697334, 19360.5708508639, 40.7258690163879,0.0162957051889601, 1.02869393872855e-06, 0.025268197376688,0.528481476061038, 0.982629085096339, 9.45655313066933e-07, 4.57557582847333e-05,7.45403294058092e-05, 4.53918933391971, 3.30530837062386e-13,0.630234341296706, 9.82668496529192e-08, 8.53389810467837e-08,9.02891336492619, 5451.02888390797, 3.90681590706977, 329.545150676593,103.491400305633, 697.038514954349, 222.73520900148, 10798.3042798457,21.0644243649671, 43176.6607108169, 4235.53654423626, 3100.32036580987,0.474678829666085, 6.40621457829452, 122.637549472055, 43.0666245228938,12.0250322640284, 61440.278302552, 6788575.58160297, 51.9360282881212,769.96899739087, 7.59005145509618e-09, 2.43526615569376e-14,7.39725489778816e-07, 0.000232784090617743, 2.71678851958226e-05,7.42801688358956e-06, 0.000419885957835749, 13.5780839769886,3.32442709394189, 0.335486082296544, 3.94230896978352, 1.46425278783307,8.69549979650646, 596385.229504125, 0.000115943040096764, 3628.23773839244,49454.7726336256, 0.000504974333790079, 0.00995546823577904,0.233933121119438, 0.363364289185792, 9193.93256769758, 354.456908896329,5661.68504768727, 0.121589829029783, 940.93343158607, 2.03003608173289e-18,0.0149649659043151, 4.52682955802236e-10, 7.15334079727642e-09,0.000310851843411754, 1.93389728243117e-06, 2.03883508956486e-07,0.00284517176384008, 540.061334125012, 21318282.1015595, 14894.4660549342,0.000266471541489485, 0.246672590081899, 0.102617416010794, 30584.5294303485,1.6644151457974, 0.274144521451231, 5.61250055231602, 801087.819256331,649321.765215902, 1.09526223361541, 3.19905699111348e-05, 0.383890848761449,895.643897487244, 2.68459116542856, 26.4804232740359, 5.94041739131986,1.53119475830081e-07), effect = c(-0.0048929408170183, 0.0543448544236634,0.355139910284011, -0.0793902472151885, -0.0177086113171934,-0.0229346227548993, 0.0859476877708055, 0.0616530901499479,0.0255808327961239, 0.0587050814255305, 0.0141476490245787, 0.016845032477233,0.0534824934671667, 0.109055235276048, 0.111112652283139, 0.0234941463950778,0.0509358202565552, 0.0252735688725701, 0.0359067099796669, 0.00562271637183446,0.0507704293161921, 0.17283228087345, 0.16140675832248, -0.0818286747635847,-0.00755469414427661, -0.0104447567093411, -0.128088271682644,-0.0534210973538898, -0.373370146687058, -0.0158548424704536,-0.0748163315974356, -0.0904460324042191, -0.0028512716452736,0.014271561838011, -0.00190156753813359, -0.0239279177026479,-0.0094336807819733, 0.0222425549129021, 0.0292506342181443,0.0325754202368439, 0.0148015986703938, 0.0421882264651577, 0.423260142208342,0.0203382101649578, 0.00402969463133637, 0.0866038959569813,-0.0126180724522637, -0.00101624925914612, 0.0424729539424711,0.0109268890743347, -0.100768815837666, -0.00606344260837149,-0.0909174554780339, -0.0959700647301915, -0.0768705808220001,-0.0662807953036616, -0.00706464147110935, -0.0260825101925435,-0.116360501719279, -0.0685817739681672, 0.0190371136722137,0.314176452865903, 0.0852019981707266, -0.109955683402951, -0.0429494359040651,-0.018893257986317, 0.0359280715736875, -0.00777719486360404,0.0268854711195253, 0.035717165605315, -0.0185632636448169, 0.00219893106540051,-0.0575168050187894, -0.0268860255228866, -0.0120997481434518,-0.0174770295188239, -0.0365387268315564, 0.00427667014560775,0.0290413811465955, -0.0303874959875708, 0.0494496371834744,-0.0172878730121681, -0.0596619493875312, 0.0674472930186462,0.0581172695200586, 0.0352865160196343, -0.0390338901505756,0.0201101954340249, 0.0968644367520139, -0.00587675128187206,-0.0990223012750421, -0.022532243059551, -0.109508938534005,-0.0828800247402709, -0.0224991372217077, -0.0864470271893071,-0.0120276456354962, -0.171616504240665, -0.0405716645109222,-0.150207882114913, 0.019187309212901, 0.0583618216547288, 0.312977089073896,-0.116708039798045, -0.0727212548658722, -0.0334904589242441,0.0250211767009604, -0.0262773156800457, -0.00638328497889965,0.0207436409328599, 0.00526977878443117, 0.0121248749949723,0.0372084648778052, 0.0119773388777849, 0.0299841410899367, 0.0179852238184209,0.00615922907815808, 0.0923011852715508, 0.0286655081413075,0.0615892570124506, -0.040101427234219, 0.00471273799312188,-0.0695325837078327, -0.0194435878635383, -0.0113447270023325,-0.052896201189637, 0.15391622949438, 0.0625317280746324, 0.305195811975115,0.0175140430499281, 0.0944330305254164, 0.125486034995771, 0.204097960624017,0.0139041133925463, 0.115503245160239, 0.0744749299835659, 0.0309401153645095,0.0774734185854047, 0.128577840642144, -0.00523940764293137,-0.0826725654792668, 0.00061718469555555, -0.139447399226457,-0.015892803158233, -0.0776351210087576, -0.114375795737603,0.506655172546014, 0.0139569906287469, 0.032593809131997, 0.0838209562382717,0.026889024005808, 0.114847700394033, 0.0344957168306127, 0.309849172983949,0.224583305802426, 0.0920680732068372, 0.20205450223499, 0.129261938040113,0.118741527574873, 0.0666598681717314, -0.0259685736746482, -0.00493768230442141,-0.0513043909367941, -0.0228292902998043, -0.125120892334107,-0.0354061460089046, -0.145910823420589, -0.0505094213129978,-0.357522550450534, -0.0492725484140125, -0.00672879449498781,-0.00498836470563034, 0.0857101915123005, 0.245202106389044,0.0652610111098569, 0.00803793757485241, 0.0456354806905821,0.0567597911088563, 0.155069881077418, 0.0398552868265476), direction = c(-1,1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1,1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1,-1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, 1,-1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1,-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, -1,1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, -1,-1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1,-1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1,-1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1), plotval = c(-4.65436783913808, 7.4638390305887, -0.166061251006543, 3.15451610300161, 3.32743565041216, -3.36193787665198, 8.34218160099397, -0.45134660936061, -0.861806358039495, 3.14989059429165, -0.385424005854277, -2.11343559832442, 0.699014672037075, -0.497079129132047, -0.104056259146589, -2.02963110287305, -3.7673992980343, 1.12925537854411, 0.744739988834407, -2.95268419318977, -1.36623884628847, 4.98189411623867, 0.0868661499973576, 3.28662435286223, 0.351109352101632, -1.57943969693098, -0.688197955780953, 0.857822769551858, 1.73066263028667, -1.48883721139058, -0.380556286225031, -1.78716235272839, -0.809302569419764, -6.02028725962301, -5.84785296501876, -3.073500877557, -0.967454268269813, -5.38748192000237, -5.57408775663275, -3.96068672995749, 7.50597726212444, 4.69864253925926, 4.14916000637992, -0.386038843759309, -3.20486151733282, -0.780262082752201, -0.507578804102515, -4.59710189032113, -2.67740750044583, -2.65866587397551, -0.670087259849411, -2.95884232700787, 11.6925265676543, 3.11870850390026, 3.94744095721937, 2.72176024102353, 1.08835175932808, -1.49196040507446, -1.8073900579076, 2.66167617047025, 0.485938344726535, 6.59364503804761, 7.0712906280104, 0.431581837757606, 1.11157095694052, -3.19891287043981, -1.40630643990113, -1.48093021354005, -2.35066396611971, -1.16853980119637, -1.25650588425321, -4.32298913566366, -4.3356578288347, -7.24851167871111, -4.61532559535481, -2.04543461904724, -1.33840723441989, -2.4416036868115, -2.23435464751167, -0.816092795927033, -2.18133938975974, -1.89055102413018, -5.57799649218455, 9.04608546234764, 7.12511846787433, 1.80708450523289, -3.01381416921109, -1.83891572308132, -3.49647343200987, -5.39744266823951, -4.28691815843339, -1.6098703601382, 1.7879268409032, 5.98771381910823, 1.59742573937338, 0.276970230656392, 0.00761038521452666, 6.02426713306055, 4.33955424293266, 4.12760869236016, -0.656978297958022, 12.4807880165375, 0.200497935929844, 7.00759296681644, 7.06885254695129, -0.955635485860221, -3.73647848327309, -0.591822947332438, -2.51791492529225, -2.01490426327141, -2.84325677575944, -2.34778887382083, -4.03335556106781, -1.32354959550492, -4.63524905089898, -3.62690843318892, -3.49140657316158, 0.323600137070818, -0.806601481409993, -2.08862346391581, -1.63414083395139, -1.08008625029083, -4.78845317422705, -6.83177865764632, -1.71546873469442, -2.88647323876581, 8.11975527988995, 13.6134535668385, 6.13092941593436, 3.63304670440456, 4.56594416664396, 5.1291271177969, 3.37686864914492, -1.13283849034736, -0.521716813134629, 0.474325491909851, -0.595750658150867, -0.165616059566562, -0.939294549263021, -5.77552687887169, 3.93575531635149, -3.55969573624066, -4.6942082095516, 3.29673069510235, 2.0019383089733, 0.630908284813054, 0.439657756641714, -3.96350131412125, -2.54956344582082, -3.75294570645333, 0.915102752209537, -2.97355889939168, 17.6924962428955, 1.82492426830489, 9.34420585704084, 8.14549108393769, 3.50744655283763, 5.71356659688074, 6.6906179005526, 2.54589150999432, -2.732443084933, -7.32875220486331, -4.17302493900107, 3.57434916575198, 0.607879106033299, 0.98877892542788, -4.48550180288597, -0.221261659119412, 0.562020428705443, -0.749156396749516, -5.90368012822885, -5.81245996063456, -0.039518112762786, 4.49497802290257, 0.415792240525927, -2.95213537116121, -0.428878156658466, -1.42292492276573, -0.773816960869839, 6.81496956627369), category = c("Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Measured", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived", "Derived")), .Names = c("Measurement", "variable", "Pval","effect", "direction", "plotval", "category"), row.names = c(21L,22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L,35L, 36L, 37L, 38L, 39L, 40L, 61L, 62L, 63L, 64L, 65L, 66L, 67L,68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L,101L, 102L, 103L, 104L, 105L, 106L, 107L, 108L, 109L, 110L, 111L,112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L, 141L, 142L,143L, 144L, 145L, 146L, 147L, 148L, 149L, 150L, 151L, 152L, 153L,154L, 155L, 156L, 157L, 158L, 159L, 160L, 181L, 182L, 183L, 184L,185L, 186L, 187L, 188L, 189L, 190L, 191L, 192L, 193L, 194L, 195L,196L, 197L, 198L, 199L, 200L, 221L, 222L, 223L, 224L, 225L, 226L,227L, 228L, 229L, 230L, 231L, 232L, 233L, 234L, 235L, 236L, 237L,238L, 239L, 240L, 261L, 262L, 263L, 264L, 265L, 266L, 267L, 268L,269L, 270L, 271L, 272L, 273L, 274L, 275L, 276L, 277L, 278L, 279L,280L, 301L, 302L, 303L, 304L, 305L, 306L, 307L, 308L, 309L, 310L,311L, 312L, 313L, 314L, 315L, 316L, 317L, 318L, 319L, 320L, 341L,342L, 343L, 344L, 345L, 346L, 347L, 348L, 349L, 350L, 351L, 352L,353L, 354L, 355L, 356L, 357L, 358L, 359L, 360L), class = "data.frame") 解决方案 Option 1Use facetsmockdata$type = ifelse(mockdata$variable %in% LETTERS[1:3], "1", "2")ggplot(mockdata) + facet_wrap(~ type, scales='free_x') + geom_tile(aes(variable, Measurement, fill = mockdata$plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_text(size=28)) + labs(title="", x="", y="", fill="")Although this is not quite perfect, because dropping the unused x-axis categories from each facet requires specifying scales='free_x' - which unfortunately does not keep the boxes the same width in each facet.Option2To remedy this we can also set space="free_x" in facet_grid. Which I think gives what you are looking for:ggplot(mockdata) + facet_grid(~ type, scales='free_x', space="free_x") + geom_tile(aes(variable, Measurement, fill = mockdata$plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_text(size=28)) + labs(title="", x="", y="", fill="")Option 3An alternative solution is to create separate plots for each category, and arrange them together. Here I put them together using cowplot::plot_grid, which allows us to set the relative widths how we want them (although you may need to tweak the rel_widths values a bit to get it just right):library(cowplot)p1 <- ggplot(mockdata[which(mockdata$type=="1"),]) + geom_tile(aes(variable, Measurement, fill = plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20), high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_text(size=28), legend.position="none") + labs(title="", x="", y="", fill="")p2 <- ggplot(mockdata[which(mockdata$type=="2"),]) + geom_tile(aes(variable, Measurement, fill = plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_blank()) + labs(title="", x="", y="", fill="")plot_grid(p1,p2, nrow = 1, rel_widths = c(1,2))Option 4You can create an extra factor level in the data, which lies between the columns you want to separate, and then plot tiles for that column in white.mockdata = rbind(mockdata, data.frame(Measurement=1:20, variable="", Pval = NA, effect = NA, direction = NA, plotval = 0, category = "Measured"))mockdata$variable = factor(mockdata$variable, levels = c("A", "B", "C", "", "a", "b", "c", "d", "e","f"))ggplot(mockdata, aes(variable, Measurement)) + geom_tile(fill = NA, colour = NA) + geom_tile(data = mockdata[which(mockdata$variable==""),], fill = "white", colour = "white") + geom_tile(data = mockdata[which(mockdata$variable!=""),], aes(fill = plotval), colour = "dark red") + scale_fill_gradient2(limits=c(-20, 20),high = "firebrick3", low = "dodgerblue4") + theme_minimal() + theme(axis.text.x=element_text(size=28, angle=90), axis.text.y=element_text(size=28)) + labs(title="", x="", y="", fill="") 这篇关于在heatplot ggplot瓷砖之间的空白区域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-05 13:57