Hi guys,
I have ran into some troubles making a population graph using popgraph/ggplot in R. More specifically, I want each module in a different color and I try to do so using geom_edgeset(color = module)
and scale_colors_manual( values = nodecolors)
. What happens is that every node just colors black. How do I solve this issue?
Here is the script I used:
p <- ggplot()
world <- map_data("world") #add a base map = bottom layer
p <- p + geom_polygon(data = world, aes(x=long, y = lat, group=group), fill="lightgrey")
nodecolors <- c("module1" = "yellow", "module2"="green", "module3"="blue", "module4" = "purple") #named chr for colors
p <- p + geom_edgeset( aes(x=longitude,y=latitude), combo, color="darkgrey") #combo is a popgraph/igraph object, an edge matrix decorated with information for each population (such as to which module it belongs)
p <- p + geom_nodeset(aes(x=longitude,y=latitude,color = as.factor(module)), combo, size=mod$nalleles/15)
p <- p + theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black")) #remove bg
p <- p + scale_color_manual(values = nodecolors)
p
What I get:
here is summary(combo)
IGRAPH 43ff52a UNW- 119 615 --
+ attr: name (v/c), population (v/n), module (v/n), color (v/n), connectivity (v/n), participation (v/n),
| role (v/n), longitude (v/n), latitude (v/n), nalleles (v/n), Hexp (v/n), Hobs (v/n), weight (e/n)
and here is dput(head(combo)
:
new("dgCMatrix", i = c(2L, 4L, 5L, 0L, 3L, 2L, 0L, 5L, 0L, 4L,
0L, 2L, 3L, 0L, 2L, 0L, 0L, 5L, 1L, 4L, 3L, 1L, 1L, 0L, 3L, 4L,
4L, 5L, 1L, 2L, 1L, 0L, 3L, 3L, 4L, 5L, 1L, 2L, 5L, 3L, 4L, 0L,
2L, 5L, 1L, 0L, 5L, 0L, 1L, 2L, 3L, 4L, 5L, 1L, 1L, 2L, 1L, 2L,
3L, 3L, 5L, 3L), p = c(0L, 3L, 3L, 5L, 6L, 8L, 10L, 13L, 15L,
16L, 18L, 20L, 21L, 21L, 21L, 21L, 22L, 23L, 24L, 26L, 26L, 28L,
28L, 30L, 31L, 33L, 36L, 39L, 41L, 44L, 45L, 47L, 53L, 53L, 54L,
56L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L,
58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 58L, 59L, 59L,
59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L, 59L,
59L, 59L, 59L, 60L, 60L, 60L, 60L, 60L, 61L, 61L, 61L, 61L, 61L,
61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L,
61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L, 61L,
61L, 61L, 62L, 62L, 62L, 62L, 62L), Dim = c(6L, 119L), Dimnames = list(
c("SSA_Ben_Kor_2006", "SSA_Bot_Tut_2009", "SSA_Cam_Ess_2005",
"SSA_Con_Luk_2007", "SSA_Gha_Dal_2009", "SSA_Gha_Mam_2009"
), c("SSA_Ben_Kor_2006", "SSA_Bot_Tut_2009", "SSA_Cam_Ess_2005",
"SSA_Con_Luk_2007", "SSA_Gha_Dal_2009", "SSA_Gha_Mam_2009",
"SSA_Ivo_Abi_2009", "SSA_Ivo_Kor_2005", "SSA_Ivo_Sin_2009",
"SSA_Ken_Riu_1995", "SSA_Mal_Lil_2010", "SSA_Mau_Eas_2010",
"SSA_Mau_Nor_2010", "SSA_Mau_Sou_2010", "SSA_Mau_Wes_2010",
"SSA_Moz_Map_2009", "SSA_Moz_Mec_2008", "SSA_Moz_Mit_2008",
"SSA_Nig_Nig_1991", "SSA_Reu_Lig_2009", "SSA_SAf_Bon_2010",
"SSA_SAf_Cer_2010", "SSA_SAf_Rie_2010", "SSA_SAf_Wol_2010",
"SSA_Sen_Fil_2010", "SSA_Sen_Keu_2010", "SSA_Sen_Thi_2010",
"SSA_Sud_Gez_2009", "SSA_Sud_Sin_2009", "SSA_Tan_Kib_2009",
"SSA_Tog_Ago_2009", "SSA_Tog_Lom_2009", "SSA_Uga_Kaw_2005",
"SSA_Zam_Maz_2008", "SSA_Zam_Lus_2007", "SSA_Zam_Sia_2008",
"EUM_Boz_Mos_2009", "EUM_Boz_Ner_2009", "EUM_Cro_Dub_2009",
"EUM_Cro_Zad_2009", "EUM_Gre_Yol_2009", "EUM_Isr_Kfa_2009",
"EUM_Isr_Kvu_2009", "EUM_Isr_Par_2009", "EUM_Isr_Reh_2009",
"EUM_Isr_Nes_2009", "EUM_Ita_Sic_1998", "EUM_Ita_Met_1996",
"EUM_Ita_Cut_2010", "EUM_Mad_Mad_2011", "EUM_Mon_Bao_2009",
"EUM_Mon_Bar_2009", "EUM_Mon_Las_2009", "EUM_Mor_Mar_2009",
"EUM_Por_Mad_2005", "EUM_Por_Alg_2011", "EUM_Spa_Ali_2010",
"EUM_Spa_Alm_2010", "EUM_Spa_Cas_2010", "EUM_Spa_Val_2010",
"EUM_Spa_Bal_2010", "EUM_Tun_NA_NA", "EUM_Tur_Bom_2010",
"HAW_Haw_Haw_1991", "HAW_Haw_Kip_1991", "HAW_Haw_Kau_1991",
"HAW_Haw_Oah_1991", "HAW_Haw_Mau_1991", "CAM_Cos_Ala_1992",
"CAM_Cos_Gua_1993", "CAM_Cos_San_1956", "CAM_Cos_Pun_1992",
"CAM_ElS_San_1998", "CAM_Gua_San_2009", "CAM_Gua_Gua_1997",
"CAM_Gua_Gua_1999", "CAM_Gua_San_1990", "CAM_Gua_Ant_1990",
"CAM_Hon_Hon_NA", "CAM_Hon_IH_2000", "CAM_Hon_Tru_2010",
"CAM_Hon_Hon_1992", "CAM_Hon_Riv_2000", "CAM_Nic_Leo_2000",
"CAM_Nic_Man_2000", "CAM_Nic_Riv_2000", "CAM_Pan_Chi_2009",
"CAM_Pan_Pan_1992", "SAM_Arg_Bue_1993", "SAM_Arg_Cor_1993",
"SAM_Arg_Ent_1993", "SAM_Arg_San_1993", "SAM_Bol_San_2001",
"SAM_Bra_Per_1993", "SAM_Bra_Sao_2001", "SAM_Bra_Bah_NA",
"SAM_Bra_Esp_NA", "SAM_Bra_Goi_1996", "SAM_Bra_Mar_NA", "SAM_Bra_Mat_NA",
"SAM_Bra_Bah_1993", "SAM_Bra_Rio_NA", "SAM_Col_Ant_NA", "SAM_Ecu_Imb_1994",
"SAM_Ecu_Pec_1994", "SAM_Ecu_Tun_1994", "SAM_Ecu_Azu_1997",
"SAM_Par_Caa_2001", "SAM_Par_Par_2001", "SAM_Per_Piu_1994",
"SAM_Per_Can_1994", "SAM_Per_Lim_1994", "SAM_Per_Tac_1994",
"SAM_Ven_Ven_1992", "AUS_Aus_Per_1994", "AUS_Aus_Per_2011",
"AUS_Aus_Wes_2011", "AUS_Aus_Wes_2015", "AUS_Aus_Wes_2016"
)), x = c(0.971185465, 0.959957553, 0.975074464, 0.971185465,
0.942539513, 0.942539513, 0.959957553, 0.949675685, 0.975074464,
0.949675685, 0.96823382, 0.951444429, 0.914758187, 0.965733122,
0.939819285, 0.978268071, 0.968965936, 0.964925752, 0.943911656,
0.829393223, 0.804226197, 0.957180344, 0.949150505, 0.96733028,
0.880829749, 0.86648621, 0.884244327, 0.959141918, 0.949828392,
0.938221117, 0.955754452, 0.957863477, 0.91340748, 0.872044799,
0.902641888, 0.932961912, 0.933447048, 0.936548539, 0.953347082,
0.831265914, 0.767998051, 0.971399981, 0.965990399, 0.971301897,
0.961281417, 0.957878235, 0.943745515, 0.978540307, 0.963631678,
0.967427473, 0.951993961, 0.952982237, 0.97494466, 0.968191119,
0.956617658, 0.95845831, 0.962761419, 0.954156934, 0.889045916,
0.812232525, 0.990101188, 0.768605046), factors = list())
Cheers, Pablo
May want to use these directions to add images: How to add images to a Biostars post
Thanks! Included the image now.
Please provide example data
dput(combo)
.Thank you! I have provided a link to the combo object
Link is broken, it is better to put the date in this post, no external links. Edit your post with output of
dput(combo)
, if the data is too big, maybe trydput(head(combo))
.