title: How to simulate the random and targeted attacks in Complex network and Python
body: <pre><code>import random
  import numpy as np
  import matplotlib.pyplot as plt
  import matplotlib
  import networkx as nx
  from ComplexNetworkSim import NetworkSimulation, AnimationCreator, PlotCreator
  
  
  def attack(graph, centrality_metric):
      graph = graph.copy()
      steps = 0
      ranks = centrality_metric(graph)
      nodes = sorted(graph.nodes(), key=lambda n: ranks[n])
      while nx.is_connected(graph):
          graph.remove_node(nodes.pop())
          steps += 1
      else:
          return steps
  
  def random_attack(graph):
      graph = graph.copy()
      steps = 0
  
      while nx.is_connected(graph):
          node = random.choice(graph.nodes())
          graph.remove_node(node)
          steps += 1
      else:
          return steps
  
  NETWORK_SIZE = 1000
  print 'Creating powerlaw cluster with %d Nodes.' % NETWORK_SIZE
  K = 4
  P = 0.1
  HK = nx.powerlaw_cluster_graph(NETWORK_SIZE, K, 0.1)
  
  
  print 'Starting attacks...'
  
  print 'Network with  Scale-free Model broke after %s steps with random attack.' % (random_attack(HK))
  print 'Network with Scale-free Model broke after %s steps with Targeted Attacks.' % (attack(HK, nx.betweenness_centrality))
  </code></pre>
  
  <p>How can I simulate the removal of nodes as random and targeted attacks? I can calculate the total steps until the network break downs but i want to plot it.</p>