Пример #1
0
def test_node_size():
    # add size as attribute and fill with random numbers
    nodes = G.nodes()
    for u in nodes:
        G.node[u]["score"] = random()
    # also extract list for testing
    scores = [G.nodes[u]["score"] for u in nodes]
    # add color as property
    a = ArcPlot(G, node_size="score")
    assert a.node_sizes == scores
    # add types as list
    a = ArcPlot(G, node_size=scores)
    assert a.node_sizes == scores
Пример #2
0
def test_edge_widths():
    # add weight as attribute and fill with random numbers
    edges = G.edges()
    for u, v in edges:
        G[u][v]["weight"] = random()
    # also extract list for testing
    weights = [G[u][v]["weight"] for u, v in edges]
    # add weights as proptery
    c = CircosPlot(G, edge_width="weight")
    assert c.edge_widths == weights
    a = ArcPlot(G, edge_width="weight")
    assert a.edge_widths == weights
    # add weights as list
    c = CircosPlot(G, edge_width=weights)
    assert c.edge_widths == weights
    a = ArcPlot(G, edge_width=weights)
    assert a.edge_widths == weights
Пример #3
0
def test_edge_color():
    # add color as attribute and fill with random numbers
    edges = G.edges()
    for u, v in edges:
        G[u][v]["type"] = "a" if random() < 0.5 else "b"
    # also extract list for testing
    types = [G[u][v]["type"] for u, v in edges]
    # add color as property
    c = CircosPlot(G, edge_color="type")
    assert corresponding_lists(c.edge_colors, types)
    a = ArcPlot(G, edge_color="type")
    assert corresponding_lists(a.edge_colors, types)
Пример #4
0
Record each node's degree centrality score in its node metadata.
Do this by assigning nx.degree_centrality(G_lmc)[n] to G_lmc.node[n]['degree centrality'] in the second for loop.
Visualize this network with an ArcPlot sorting the nodes by degree centrality (you can do this using the keyword argument node_order='degree centrality').
'''
SOLUTION
# Import necessary modules
from nxviz import ArcPlot
import matplotlib.pyplot as plt

# Identify the largest maximal clique: largest_max_clique
largest_max_clique = set(sorted(nx.find_cliques(G), key=lambda x: len(x))[-1])

# Create a subgraph from the largest_max_clique: G_lmc
G_lmc = G.subgraph(largest_max_clique).copy()

# Go out 1 degree of separation
for node in list(G_lmc.nodes()):
    G_lmc.add_nodes_from(G.neighbors(node))
    G_lmc.add_edges_from(
        zip([node] * len(list(G.neighbors(node))), G.neighbors(node)))

# Record each node's degree centrality score
for n in G_lmc.nodes():
    G_lmc.node[n]['degree centrality'] = nx.degree_centrality(G_lmc)[n]

# Create the ArcPlot object: a
a = ArcPlot(graph=G_lmc, node_order='degree centrality')

# Draw the ArcPlot to the screen
a.draw()
plt.show()
Пример #5
0
# Create the CircosPlot object: c
c = CircosPlot(T)

# Draw c to the screen
c.draw()

# Display the plot
plt.show()

#7
# Import necessary modules
import matplotlib.pyplot as plt
from nxviz import ArcPlot

# Create the un-customized ArcPlot object: a
a = ArcPlot(T)

# Draw a to the screen
a.draw()

# Display the plot
plt.show()

# Create the customized ArcPlot object: a2
a2 = ArcPlot(T, node_order='category', node_color='category')

# Draw a2 to the screen
a2.draw()

# Display the plot
plt.show()
Пример #6
0
# Create the CircosPlot object: c
c = CircosPlot(T)

# Draw c to the screen
c.draw()

# Display the plot
plt.show()

# Import necessary modules
import matplotlib.pyplot as plt
from nxviz import ArcPlot

# Create the un-customized ArcPlot object: a
a = ArcPlot(T)

# Draw a to the screen
a.draw()

# Display the plot
plt.show()

# Create the customized ArcPlot object: a2
a2 = ArcPlot(
    T,
    node_order='category',
    node_color='category',
)

# Draw a2 to the screen
Пример #7
0
def test_arc_plot():
    a = ArcPlot(G)  # noqa: F841
    diff = diff_plots(a, "arc.png", baseline_dir, result_dir)
    assert diff is None
# Create the customized MatrixPlot object: h
h = MatrixPlot(graph=largest_ccs, node_grouping='grouping')

print(' Draw the MatrixPlot  ')
h.draw()
plt.savefig('MatrixPlot.png')
plt.clf()
# Iterate over all the nodes in G, including the metadata
for n, d in G.nodes(data=True):

    # Calculate the degree of each node: G.node[n]['degree']
    G.node[n]['degree'] = nx.degree(G, n)

# Create the ArcPlot object: a
a = ArcPlot(G, node_order='degree')

print('  Draw the ArcPlot to the screen ')
a.draw()
plt.savefig('ArcPlot.png')

# Iterate over all the nodes, including the metadata
for n, d in G.nodes(data=True):

    # Calculate the degree of each node: G.node[n]['degree']
    G.node[n]['degree'] = nx.degree(G, n)

# Create the CircosPlot object: c
c = CircosPlot(G,
               node_order='degree',
               node_grouping='grouping',
                 node_labels=True,
                 node_order='Y',
                 font_size=32,
                 node_color='C',
                 figsize=(8, 8),
                 font_weight='bold')  # This creates a circosplot object Mat.
Mat.draw()
plt.savefig('./figures/Cerco_credit_transaction.png')
plt.show()

## Arcplot
from nxviz import ArcPlot

Mat = ArcPlot(G,
              node_labels=True,
              font_size=25,
              node_order='Y',
              node_color='C',
              figsize=(8, 8))
Mat.draw()
plt.savefig('./figures/Arc_credit_transaction.png')
plt.show()

# Centrality Measures

## Degree Centrality
pos = node_pos
draw_graph(G, pos, nx.in_degree_centrality(G), 'In-degree Centrality',
           './figures/indegree_credit_transaction.png')
draw_graph(G, pos, nx.out_degree_centrality(G), 'Out-degree Centrality',
           './figures/outdegree_credit_transaction.png')
# Draw c to the screen
c.draw()

# Display the plot
plt.show()

# Visualizing using Arc plots
# Following on what you've learned about the nxviz API, now try making an ArcPlot of the network. Two keyword arguments that you will try here are node_order='keyX' and node_color='keyX', in which you specify a key in the node metadata dictionary to color and order the nodes by.

# matplotlib.pyplot has been imported for you as plt.
# Import necessary modules
import matplotlib.pyplot as plt
from nxviz import ArcPlot

# Create the un-customized ArcPlot object: a
a = ArcPlot(T)

# Draw a to the screen
a.draw()

# Display the plot
plt.show()

# Create the customized ArcPlot object: a2
a2 = ArcPlot(node_order='category',node_color='category',graph = T)

# Draw a2 to the screen
a2.draw()

# Display the plot
plt.show()
Пример #11
0
# Draw c to the screen
c.draw()

# Display the plot
plt.show()

--------------------------------------------------
# Exercise_7 
# Import necessary modules

import matplotlib.pyplot as plt
from nxviz import ArcPlot

# Create the un-customized ArcPlot object: a
a = ArcPlot(T)

# Draw a to the screen
a.draw()

# Display the plot
plt.show()

# Create the customized ArcPlot object: a2
a2 = ArcPlot(T, node_order="category", node_color="category")

# Draw a2 to the screen
a2.draw()

# Display the plot
plt.show()
Пример #12
0
def test_arc_plot():
    a = ArcPlot(G)  # noqa: F841
Пример #13
0
def test_answer(mf_counts):
    assert mf_counts['female'] == 17
    assert mf_counts['male'] == 12


test_answer(mf_count)

from nxviz import MatrixPlot

m = MatrixPlot(g)
m.draw()
plt.show()

from nxviz import ArcPlot

a = ArcPlot(g)
a.draw()

from nxviz import CircosPlot

c = CircosPlot(g)
c.draw()
plt.show()
# plt.savefig('images/seventh.png', dpi=300)

#%% hiveplot
#%%

#%%
DG = nx.DiGraph()  # make a directed graph (digraph)
DG.add_nodes_from(["S", "A", "B", "C", "D", "E", "T"])  # add nodes
Пример #14
0
from nxviz import ArcPlot
from nxviz import CircosPlot
# plt.style.use('ggplot')
from itertools import combinations

T = nx.erdos_renyi_graph(n=45, p=0.8, seed=456)

c = CircosPlot(T)

# Draw c to the screen
c.draw()
plt.pause(2)
plt.clf()

# Create the un-customized ArcPlot object: a
a = ArcPlot(T)

# Draw a to the screen
a.draw()

# Display the plot
plt.pause(2)
plt.close()


def nodes_with_m_nbrs(G, m):
    """
    Returns all nodes in graph G that have m neighbors.
    """
    nodes = set()
Пример #15
0
def test_arc_plot():
    a = ArcPlot(G)