使用ggplot geom_smooth使多条平滑线相对于置信区间填充更可见

时间:2019-06-29 01:43:50

标签: r ggplot2

我正在绘制多个受试者之间多个基因表达的图表,显示数据点和具有相应置信区间的平滑条件均值,但是点和线被置信区间的填充所遮盖。是否可以将点和线放回第一平面上或使置信区间填充更浅,以使点和线更清晰?

data1

library(forcats)
library(ggplot2)
library(tidyr)

tbl_long <- data1 %>% 
  gather(gene, expression, -X)

tbl_long %>%
  ggplot(aes(x = fct_inorder(X), y = expression, color = gene, group = gene)) + 
  geom_point() + 
  geom_smooth(aes(fill=gene)) + 
  theme_classic()

graph

我是初学者R用户,因此非常感谢您提供帮助

1 个答案:

答案 0 :(得分:0)

library(dplyr)
library(forcats)
library(ggplot2)
library(readr)
library(tidyr)

"X,ALDOA,ALDOC,GPI,GAPDHS,LDHA,PGK1,PKLR
 C1,-0.643185598,-0.645053078,-0.087097464,-0.343085671,-0.770712771,0.004189881,0.088937264
 C2,-0.167424935,-0.414607255,0.049551335,-0.405339423,-0.182211808,-0.127414498,-0.313125427
 C3,-0.81858642,-0.938110755,-1.141371324,-0.212165875,-0.582733509,-0.299505078,-0.417053296
 C4,-0.83403929,-0.36359332,-0.731276681,-1.173581357,-0.42953985,-0.14434282,-0.861271021
 C5,-0.689384044,-0.833311409,-0.622961915,-1.13983245,0.479864518,-0.353765462,-0.787467172
 C6,-0.465153207,-0.740128773,-0.05430084,0.499455778,-0.692945684,-0.215067456,-0.460695935
 S2,0.099525323,0.327565645,-0.315537278,0.065457821,0.78394394,0.189251447,0.11684847
 S3,0.33216583,0.190001824,0.749459725,0.224739679,-0.138610536,-0.420150288,0.919318891
 S4,0.522281547,0.278411886,1.715325626,0.534957031,1.130054777,-0.129296273,1.803756399
 S5,0.691225088,0.665540011,1.661124529,0.662320212,0.267803229,0.853683613,1.105808889 
 S6,1.269616976,1.86390714,2.069219749,1.312324149,1.498836807,1.794147633,0.842335285
 S7,1.254166133,1.819075004,0.44893804,0.438435159,0.482694339,0.446939822,0.802671992
 S8,0.751743085,0.702057721,0.657752337,1.668582798,-0.186354601,1.214976683,0.287904556
 S9,0.091028475,-0.214746307,0.037471169,-0.90747123,-0.172209571,0.062382102,0.136354703
 S10,1.5792826,1.736452158,0.194961866,0.706323594,1.396245579,0.208168636,0.883114282
 R2,-0.36289097,-0.252649755,0.026497148,-0.026676693,-0.720750516,-0.087657548,0.390400605
 R3,0.106992251,0.290831853,-0.815393104,-0.020562949,-0.579128953,-0.222087138,0.603723294
 R4,0.208230649,0.533552023,-0.116632671,1.126588341,-0.09646495,0.157577458,-0.402493353
 R5,-0.10781116,0.436174594,-0.969979695,-1.298192703,0.541570124,-0.07591813,-0.704663307
 R6,-0.282867322,-0.960902616,0.184185506,-1.215118472,0.856165556,-0.256458847,-1.528611038
 R7,-0.300331377,-0.918484952,0.191947526,-0.895049036,1.200294702,0.7120941,-0.047383224
 R8,0.278804568,-0.07335879,0.300083636,0.37631121,-0.288228181,0.427576413,0.631281194
 R9,0.393632652,0.228379711,-0.201269856,1.731887958,0.141541807,0.242716283,0.154875397
 R10,0.731821818,0.058779515,-0.310899832,0.578285435,-0.474621274,0.126920851,0.017104493" %>%
  read_csv() -> tbl_wide

tbl_long <- tbl_wide %>% 
  gather(gene, expression, -X)

tbl_long %>% 
  ggplot(aes(x = fct_inorder(X), y = expression, color = gene, fill = gene, group = gene)) + 
  geom_smooth(method = "loess", alpha = 0.1) + 
  geom_point() + 
  labs(x = "Location", 
       y = "Expression", 
       color = "Gene", 
       fill = "Gene") + 
theme_classic()

plot output