plot_connectivities.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. morphologies =["polar", "circular"]
  4. image_folder="../reports/images/"
  5. data_folder ="../../data/"
  6. connectivity = ["first_order", "second_order"]
  7. connectivity_dict={}
  8. for c in connectivity:
  9. connectivity_dict[c]={}
  10. for morphology in morphologies:
  11. connectivity_dict[c][morphology] = np.load("{:s}{:s}_connectivity_{:s}.npy".format(data_folder, c, morphology))
  12. connectivity_dict[c]["distances"] = np.load("{:s}{:s}_connectivity_{:s}.npy".format(data_folder, c,
  13. "distance_bins"))
  14. # Plot average number of connections versus distance
  15. fig=plt.figure()
  16. ax = fig.add_subplot(111)
  17. colors = ["blue", "orange"]
  18. linestyle = ["-", "--" ]
  19. for c, ls in zip(connectivity, linestyle):
  20. distance_bins = connectivity_dict[c]["distances"]
  21. for morphology, color in zip(morphologies, colors):
  22. number_of_connections = connectivity_dict[c][morphology]
  23. ax.plot(distance_bins[:-1], number_of_connections, label="{:s} {:s}".format(c, morphology), color=color, ls=ls)
  24. ax.grid()
  25. ax.legend()
  26. ax.set_xlabel("Distance (um)")
  27. ax.set_ylabel("Average number of connections")
  28. fig.savefig(image_folder+"distance_dependent_connectivity.png", dpi=300)
  29. # Effective interaction
  30. interaction_first_order = -1.0
  31. interaction_second_order = -interaction_first_order/10.0
  32. fig=plt.figure()
  33. ax = fig.add_subplot(111)
  34. interaction_weights = [interaction_first_order, interaction_second_order]
  35. for morphology, color in zip(morphologies, colors):
  36. distance_bins = connectivity_dict[connectivity[1]]["distances"]
  37. effective_interaction = np.zeros((distance_bins[:-1].shape))
  38. first_order_interaction = interaction_weights[0]*connectivity_dict[connectivity[0]][morphology]
  39. second_order_interaction = interaction_weights[1]*connectivity_dict[connectivity[1]][morphology]
  40. effective_interaction[:first_order_interaction.shape[0]] = first_order_interaction
  41. effective_interaction = effective_interaction+second_order_interaction
  42. ax.plot(distance_bins[1:], effective_interaction, label="weight_fo {:.1f} weight_so {:.1f} {:s}".format(
  43. interaction_first_order, interaction_second_order, morphology),
  44. color=color, ls=ls)
  45. ax.grid()
  46. ax.legend()
  47. ax.set_xlabel("Distance (um)")
  48. ax.set_ylabel("Effective interaction (a.u.)")
  49. fig.savefig(image_folder+"effective_interaction.png", dpi=300)