summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIssa Moradnejad <i.moradnejad@gmail.com>2019-01-09 14:51:20 +0330
committerIssa Moradnejad <i.moradnejad@gmail.com>2019-01-09 14:51:20 +0330
commite8ecb8343649c140b4c2048dfb4b428a4184b816 (patch)
tree38a73e20dc56c348ec2757577a7591e217dbe94d
parent224bd0ce1cc1c5c55a038da72b399d8540055bd9 (diff)
downloadnetworkx-e8ecb8343649c140b4c2048dfb4b428a4184b816.tar.gz
added coappearance network of characters in the novel Les Miserables
-rw-r--r--doc/reference/generators.rst1
-rw-r--r--networkx/generators/social.py267
2 files changed, 268 insertions, 0 deletions
diff --git a/doc/reference/generators.rst b/doc/reference/generators.rst
index b5d84326..2a40b943 100644
--- a/doc/reference/generators.rst
+++ b/doc/reference/generators.rst
@@ -236,6 +236,7 @@ Social Networks
karate_club_graph
davis_southern_women_graph
florentine_families_graph
+ les_miserables_graph
Community
diff --git a/networkx/generators/social.py b/networkx/generators/social.py
index ab1230b1..fb84828a 100644
--- a/networkx/generators/social.py
+++ b/networkx/generators/social.py
@@ -267,3 +267,270 @@ def florentine_families_graph():
G.add_edge('Bischeri', 'Guadagni')
G.add_edge('Guadagni', 'Lamberteschi')
return G
+
+
+def les_miserables_graph():
+ """Return coappearance network of characters in the novel Les Miserables.
+
+ References
+ ----------
+ .. [1] D. E. Knuth, 1993.
+ The Stanford GraphBase: a platform for combinatorial computing,
+ pp. 74-87. New York: AcM Press.
+ """
+ G = nx.Graph()
+ G.add_edge('Napoleon', 'Myriel', weight=1)
+ G.add_edge('MlleBaptistine', 'Myriel', weight=8)
+ G.add_edge('MmeMagloire', 'Myriel', weight=10)
+ G.add_edge('MmeMagloire', 'MlleBaptistine', weight=6)
+ G.add_edge('CountessDeLo', 'Myriel', weight=1)
+ G.add_edge('Geborand', 'Myriel', weight=1)
+ G.add_edge('Champtercier', 'Myriel', weight=1)
+ G.add_edge('Cravatte', 'Myriel', weight=1)
+ G.add_edge('Count', 'Myriel', weight=2)
+ G.add_edge('OldMan', 'Myriel', weight=1)
+ G.add_edge('Valjean', 'Labarre', weight=1)
+ G.add_edge('Valjean', 'MmeMagloire', weight=3)
+ G.add_edge('Valjean', 'MlleBaptistine', weight=3)
+ G.add_edge('Valjean', 'Myriel', weight=5)
+ G.add_edge('Marguerite', 'Valjean', weight=1)
+ G.add_edge('MmeDeR', 'Valjean', weight=1)
+ G.add_edge('Isabeau', 'Valjean', weight=1)
+ G.add_edge('Gervais', 'Valjean', weight=1)
+ G.add_edge('Listolier', 'Tholomyes', weight=4)
+ G.add_edge('Fameuil', 'Tholomyes', weight=4)
+ G.add_edge('Fameuil', 'Listolier', weight=4)
+ G.add_edge('Blacheville', 'Tholomyes', weight=4)
+ G.add_edge('Blacheville', 'Listolier', weight=4)
+ G.add_edge('Blacheville', 'Fameuil', weight=4)
+ G.add_edge('Favourite', 'Tholomyes', weight=3)
+ G.add_edge('Favourite', 'Listolier', weight=3)
+ G.add_edge('Favourite', 'Fameuil', weight=3)
+ G.add_edge('Favourite', 'Blacheville', weight=4)
+ G.add_edge('Dahlia', 'Tholomyes', weight=3)
+ G.add_edge('Dahlia', 'Listolier', weight=3)
+ G.add_edge('Dahlia', 'Fameuil', weight=3)
+ G.add_edge('Dahlia', 'Blacheville', weight=3)
+ G.add_edge('Dahlia', 'Favourite', weight=5)
+ G.add_edge('Zephine', 'Tholomyes', weight=3)
+ G.add_edge('Zephine', 'Listolier', weight=3)
+ G.add_edge('Zephine', 'Fameuil', weight=3)
+ G.add_edge('Zephine', 'Blacheville', weight=3)
+ G.add_edge('Zephine', 'Favourite', weight=4)
+ G.add_edge('Zephine', 'Dahlia', weight=4)
+ G.add_edge('Fantine', 'Tholomyes', weight=3)
+ G.add_edge('Fantine', 'Listolier', weight=3)
+ G.add_edge('Fantine', 'Fameuil', weight=3)
+ G.add_edge('Fantine', 'Blacheville', weight=3)
+ G.add_edge('Fantine', 'Favourite', weight=4)
+ G.add_edge('Fantine', 'Dahlia', weight=4)
+ G.add_edge('Fantine', 'Zephine', weight=4)
+ G.add_edge('Fantine', 'Marguerite', weight=2)
+ G.add_edge('Fantine', 'Valjean', weight=9)
+ G.add_edge('MmeThenardier', 'Fantine', weight=2)
+ G.add_edge('MmeThenardier', 'Valjean', weight=7)
+ G.add_edge('Thenardier', 'MmeThenardier', weight=13)
+ G.add_edge('Thenardier', 'Fantine', weight=1)
+ G.add_edge('Thenardier', 'Valjean', weight=12)
+ G.add_edge('Cosette', 'MmeThenardier', weight=4)
+ G.add_edge('Cosette', 'Valjean', weight=31)
+ G.add_edge('Cosette', 'Tholomyes', weight=1)
+ G.add_edge('Cosette', 'Thenardier', weight=1)
+ G.add_edge('Javert', 'Valjean', weight=17)
+ G.add_edge('Javert', 'Fantine', weight=5)
+ G.add_edge('Javert', 'Thenardier', weight=5)
+ G.add_edge('Javert', 'MmeThenardier', weight=1)
+ G.add_edge('Javert', 'Cosette', weight=1)
+ G.add_edge('Fauchelevent', 'Valjean', weight=8)
+ G.add_edge('Fauchelevent', 'Javert', weight=1)
+ G.add_edge('Bamatabois', 'Fantine', weight=1)
+ G.add_edge('Bamatabois', 'Javert', weight=1)
+ G.add_edge('Bamatabois', 'Valjean', weight=2)
+ G.add_edge('Perpetue', 'Fantine', weight=1)
+ G.add_edge('Simplice', 'Perpetue', weight=2)
+ G.add_edge('Simplice', 'Valjean', weight=3)
+ G.add_edge('Simplice', 'Fantine', weight=2)
+ G.add_edge('Simplice', 'Javert', weight=1)
+ G.add_edge('Scaufflaire', 'Valjean', weight=1)
+ G.add_edge('Woman1', 'Valjean', weight=2)
+ G.add_edge('Woman1', 'Javert', weight=1)
+ G.add_edge('Judge', 'Valjean', weight=3)
+ G.add_edge('Judge', 'Bamatabois', weight=2)
+ G.add_edge('Champmathieu', 'Valjean', weight=3)
+ G.add_edge('Champmathieu', 'Judge', weight=3)
+ G.add_edge('Champmathieu', 'Bamatabois', weight=2)
+ G.add_edge('Brevet', 'Judge', weight=2)
+ G.add_edge('Brevet', 'Champmathieu', weight=2)
+ G.add_edge('Brevet', 'Valjean', weight=2)
+ G.add_edge('Brevet', 'Bamatabois', weight=1)
+ G.add_edge('Chenildieu', 'Judge', weight=2)
+ G.add_edge('Chenildieu', 'Champmathieu', weight=2)
+ G.add_edge('Chenildieu', 'Brevet', weight=2)
+ G.add_edge('Chenildieu', 'Valjean', weight=2)
+ G.add_edge('Chenildieu', 'Bamatabois', weight=1)
+ G.add_edge('Cochepaille', 'Judge', weight=2)
+ G.add_edge('Cochepaille', 'Champmathieu', weight=2)
+ G.add_edge('Cochepaille', 'Brevet', weight=2)
+ G.add_edge('Cochepaille', 'Chenildieu', weight=2)
+ G.add_edge('Cochepaille', 'Valjean', weight=2)
+ G.add_edge('Cochepaille', 'Bamatabois', weight=1)
+ G.add_edge('Pontmercy', 'Thenardier', weight=1)
+ G.add_edge('Boulatruelle', 'Thenardier', weight=1)
+ G.add_edge('Eponine', 'MmeThenardier', weight=2)
+ G.add_edge('Eponine', 'Thenardier', weight=3)
+ G.add_edge('Anzelma', 'Eponine', weight=2)
+ G.add_edge('Anzelma', 'Thenardier', weight=2)
+ G.add_edge('Anzelma', 'MmeThenardier', weight=1)
+ G.add_edge('Woman2', 'Valjean', weight=3)
+ G.add_edge('Woman2', 'Cosette', weight=1)
+ G.add_edge('Woman2', 'Javert', weight=1)
+ G.add_edge('MotherInnocent', 'Fauchelevent', weight=3)
+ G.add_edge('MotherInnocent', 'Valjean', weight=1)
+ G.add_edge('Gribier', 'Fauchelevent', weight=2)
+ G.add_edge('MmeBurgon', 'Jondrette', weight=1)
+ G.add_edge('Gavroche', 'MmeBurgon', weight=2)
+ G.add_edge('Gavroche', 'Thenardier', weight=1)
+ G.add_edge('Gavroche', 'Javert', weight=1)
+ G.add_edge('Gavroche', 'Valjean', weight=1)
+ G.add_edge('Gillenormand', 'Cosette', weight=3)
+ G.add_edge('Gillenormand', 'Valjean', weight=2)
+ G.add_edge('Magnon', 'Gillenormand', weight=1)
+ G.add_edge('Magnon', 'MmeThenardier', weight=1)
+ G.add_edge('MlleGillenormand', 'Gillenormand', weight=9)
+ G.add_edge('MlleGillenormand', 'Cosette', weight=2)
+ G.add_edge('MlleGillenormand', 'Valjean', weight=2)
+ G.add_edge('MmePontmercy', 'MlleGillenormand', weight=1)
+ G.add_edge('MmePontmercy', 'Pontmercy', weight=1)
+ G.add_edge('MlleVaubois', 'MlleGillenormand', weight=1)
+ G.add_edge('LtGillenormand', 'MlleGillenormand', weight=2)
+ G.add_edge('LtGillenormand', 'Gillenormand', weight=1)
+ G.add_edge('LtGillenormand', 'Cosette', weight=1)
+ G.add_edge('Marius', 'MlleGillenormand', weight=6)
+ G.add_edge('Marius', 'Gillenormand', weight=12)
+ G.add_edge('Marius', 'Pontmercy', weight=1)
+ G.add_edge('Marius', 'LtGillenormand', weight=1)
+ G.add_edge('Marius', 'Cosette', weight=21)
+ G.add_edge('Marius', 'Valjean', weight=19)
+ G.add_edge('Marius', 'Tholomyes', weight=1)
+ G.add_edge('Marius', 'Thenardier', weight=2)
+ G.add_edge('Marius', 'Eponine', weight=5)
+ G.add_edge('Marius', 'Gavroche', weight=4)
+ G.add_edge('BaronessT', 'Gillenormand', weight=1)
+ G.add_edge('BaronessT', 'Marius', weight=1)
+ G.add_edge('Mabeuf', 'Marius', weight=1)
+ G.add_edge('Mabeuf', 'Eponine', weight=1)
+ G.add_edge('Mabeuf', 'Gavroche', weight=1)
+ G.add_edge('Enjolras', 'Marius', weight=7)
+ G.add_edge('Enjolras', 'Gavroche', weight=7)
+ G.add_edge('Enjolras', 'Javert', weight=6)
+ G.add_edge('Enjolras', 'Mabeuf', weight=1)
+ G.add_edge('Enjolras', 'Valjean', weight=4)
+ G.add_edge('Combeferre', 'Enjolras', weight=15)
+ G.add_edge('Combeferre', 'Marius', weight=5)
+ G.add_edge('Combeferre', 'Gavroche', weight=6)
+ G.add_edge('Combeferre', 'Mabeuf', weight=2)
+ G.add_edge('Prouvaire', 'Gavroche', weight=1)
+ G.add_edge('Prouvaire', 'Enjolras', weight=4)
+ G.add_edge('Prouvaire', 'Combeferre', weight=2)
+ G.add_edge('Feuilly', 'Gavroche', weight=2)
+ G.add_edge('Feuilly', 'Enjolras', weight=6)
+ G.add_edge('Feuilly', 'Prouvaire', weight=2)
+ G.add_edge('Feuilly', 'Combeferre', weight=5)
+ G.add_edge('Feuilly', 'Mabeuf', weight=1)
+ G.add_edge('Feuilly', 'Marius', weight=1)
+ G.add_edge('Courfeyrac', 'Marius', weight=9)
+ G.add_edge('Courfeyrac', 'Enjolras', weight=17)
+ G.add_edge('Courfeyrac', 'Combeferre', weight=13)
+ G.add_edge('Courfeyrac', 'Gavroche', weight=7)
+ G.add_edge('Courfeyrac', 'Mabeuf', weight=2)
+ G.add_edge('Courfeyrac', 'Eponine', weight=1)
+ G.add_edge('Courfeyrac', 'Feuilly', weight=6)
+ G.add_edge('Courfeyrac', 'Prouvaire', weight=3)
+ G.add_edge('Bahorel', 'Combeferre', weight=5)
+ G.add_edge('Bahorel', 'Gavroche', weight=5)
+ G.add_edge('Bahorel', 'Courfeyrac', weight=6)
+ G.add_edge('Bahorel', 'Mabeuf', weight=2)
+ G.add_edge('Bahorel', 'Enjolras', weight=4)
+ G.add_edge('Bahorel', 'Feuilly', weight=3)
+ G.add_edge('Bahorel', 'Prouvaire', weight=2)
+ G.add_edge('Bahorel', 'Marius', weight=1)
+ G.add_edge('Bossuet', 'Marius', weight=5)
+ G.add_edge('Bossuet', 'Courfeyrac', weight=12)
+ G.add_edge('Bossuet', 'Gavroche', weight=5)
+ G.add_edge('Bossuet', 'Bahorel', weight=4)
+ G.add_edge('Bossuet', 'Enjolras', weight=10)
+ G.add_edge('Bossuet', 'Feuilly', weight=6)
+ G.add_edge('Bossuet', 'Prouvaire', weight=2)
+ G.add_edge('Bossuet', 'Combeferre', weight=9)
+ G.add_edge('Bossuet', 'Mabeuf', weight=1)
+ G.add_edge('Bossuet', 'Valjean', weight=1)
+ G.add_edge('Joly', 'Bahorel', weight=5)
+ G.add_edge('Joly', 'Bossuet', weight=7)
+ G.add_edge('Joly', 'Gavroche', weight=3)
+ G.add_edge('Joly', 'Courfeyrac', weight=5)
+ G.add_edge('Joly', 'Enjolras', weight=5)
+ G.add_edge('Joly', 'Feuilly', weight=5)
+ G.add_edge('Joly', 'Prouvaire', weight=2)
+ G.add_edge('Joly', 'Combeferre', weight=5)
+ G.add_edge('Joly', 'Mabeuf', weight=1)
+ G.add_edge('Joly', 'Marius', weight=2)
+ G.add_edge('Grantaire', 'Bossuet', weight=3)
+ G.add_edge('Grantaire', 'Enjolras', weight=3)
+ G.add_edge('Grantaire', 'Combeferre', weight=1)
+ G.add_edge('Grantaire', 'Courfeyrac', weight=2)
+ G.add_edge('Grantaire', 'Joly', weight=2)
+ G.add_edge('Grantaire', 'Gavroche', weight=1)
+ G.add_edge('Grantaire', 'Bahorel', weight=1)
+ G.add_edge('Grantaire', 'Feuilly', weight=1)
+ G.add_edge('Grantaire', 'Prouvaire', weight=1)
+ G.add_edge('MotherPlutarch', 'Mabeuf', weight=3)
+ G.add_edge('Gueulemer', 'Thenardier', weight=5)
+ G.add_edge('Gueulemer', 'Valjean', weight=1)
+ G.add_edge('Gueulemer', 'MmeThenardier', weight=1)
+ G.add_edge('Gueulemer', 'Javert', weight=1)
+ G.add_edge('Gueulemer', 'Gavroche', weight=1)
+ G.add_edge('Gueulemer', 'Eponine', weight=1)
+ G.add_edge('Babet', 'Thenardier', weight=6)
+ G.add_edge('Babet', 'Gueulemer', weight=6)
+ G.add_edge('Babet', 'Valjean', weight=1)
+ G.add_edge('Babet', 'MmeThenardier', weight=1)
+ G.add_edge('Babet', 'Javert', weight=2)
+ G.add_edge('Babet', 'Gavroche', weight=1)
+ G.add_edge('Babet', 'Eponine', weight=1)
+ G.add_edge('Claquesous', 'Thenardier', weight=4)
+ G.add_edge('Claquesous', 'Babet', weight=4)
+ G.add_edge('Claquesous', 'Gueulemer', weight=4)
+ G.add_edge('Claquesous', 'Valjean', weight=1)
+ G.add_edge('Claquesous', 'MmeThenardier', weight=1)
+ G.add_edge('Claquesous', 'Javert', weight=1)
+ G.add_edge('Claquesous', 'Eponine', weight=1)
+ G.add_edge('Claquesous', 'Enjolras', weight=1)
+ G.add_edge('Montparnasse', 'Javert', weight=1)
+ G.add_edge('Montparnasse', 'Babet', weight=2)
+ G.add_edge('Montparnasse', 'Gueulemer', weight=2)
+ G.add_edge('Montparnasse', 'Claquesous', weight=2)
+ G.add_edge('Montparnasse', 'Valjean', weight=1)
+ G.add_edge('Montparnasse', 'Gavroche', weight=1)
+ G.add_edge('Montparnasse', 'Eponine', weight=1)
+ G.add_edge('Montparnasse', 'Thenardier', weight=1)
+ G.add_edge('Toussaint', 'Cosette', weight=2)
+ G.add_edge('Toussaint', 'Javert', weight=1)
+ G.add_edge('Toussaint', 'Valjean', weight=1)
+ G.add_edge('Child1', 'Gavroche', weight=2)
+ G.add_edge('Child2', 'Gavroche', weight=2)
+ G.add_edge('Child2', 'Child1', weight=3)
+ G.add_edge('Brujon', 'Babet', weight=3)
+ G.add_edge('Brujon', 'Gueulemer', weight=3)
+ G.add_edge('Brujon', 'Thenardier', weight=3)
+ G.add_edge('Brujon', 'Gavroche', weight=1)
+ G.add_edge('Brujon', 'Eponine', weight=1)
+ G.add_edge('Brujon', 'Claquesous', weight=1)
+ G.add_edge('Brujon', 'Montparnasse', weight=1)
+ G.add_edge('MmeHucheloup', 'Bossuet', weight=1)
+ G.add_edge('MmeHucheloup', 'Joly', weight=1)
+ G.add_edge('MmeHucheloup', 'Grantaire', weight=1)
+ G.add_edge('MmeHucheloup', 'Bahorel', weight=1)
+ G.add_edge('MmeHucheloup', 'Courfeyrac', weight=1)
+ G.add_edge('MmeHucheloup', 'Gavroche', weight=1)
+ G.add_edge('MmeHucheloup', 'Enjolras', weight=1)
+ return G