plot_connectivity_versus_distance.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import seaborn as sns
  4. sns.set_context("talk")
  5. morphologies =["polar", "circular"]
  6. image_folder="../reports/images/"
  7. data_folder ="../../data/"
  8. connectivity = ["first_order", "second_order"]
  9. connectivity_dict={}
  10. for c in connectivity:
  11. connectivity_dict[c]={}
  12. for morphology in morphologies:
  13. connectivity_dict[c][morphology] = np.load("{:s}{:s}_connectivity_{:s}.npy".format(data_folder, c, morphology))
  14. connectivity_dict[c]["distances"] = np.load("{:s}{:s}_connectivity_{:s}.npy".format(data_folder, c,
  15. "distance_bins"))
  16. # Plot average number of connections versus distance
  17. cmperinch = 2.54
  18. figsize = (10.0/cmperinch, 10.0/cmperinch)
  19. fig=plt.figure(figsize=figsize)
  20. ax = fig.add_subplot(111)
  21. # First order
  22. rx, ry = 3., 1.
  23. area = rx * ry * np.pi
  24. theta = np.arange(0, 2 * np.pi + 0.11, 0.1)
  25. ellipsoid_verts = np.column_stack([rx / area * np.cos(theta), ry / area * np.sin(theta)])
  26. rx= 1
  27. ry = rx
  28. area = rx * ry * np.pi
  29. circular_verts = np.column_stack([rx / area * np.cos(theta), ry / area * np.sin(theta)])
  30. c = "first_order"
  31. distance_bins = connectivity_dict[c]["distances"]
  32. styles = [
  33. {
  34. "label": "polar",
  35. "marker": ellipsoid_verts
  36. },
  37. {
  38. "label": "circular",
  39. "marker": circular_verts
  40. }
  41. ]
  42. for morphology, style in zip(reversed(morphologies), reversed(styles)):
  43. number_of_connections = connectivity_dict[c][morphology]
  44. ax.plot(distance_bins[:-1], number_of_connections, ls ='--')
  45. ax.scatter(distance_bins[0:-2:5], number_of_connections[0:-1:5], **style)
  46. ax.grid()
  47. ax.set_axisbelow(True)
  48. ax.legend()
  49. ax.set_xlim(0,400)
  50. ax.set_xlabel("Distance (um)")
  51. ax.set_ylabel("<# of connections>")
  52. fig.tight_layout()
  53. fig.savefig(image_folder+"poster_distance_dependent_first_order_connectivity.png", dpi=300)
  54. fig.savefig(image_folder+"poster_distance_dependent_first_order_connectivity.pdf")
  55. figsize = (10.0/cmperinch, 10.0/cmperinch)
  56. fig=plt.figure(figsize=figsize)
  57. ax = fig.add_subplot(111)
  58. # First order
  59. rx, ry = 3., 1.
  60. area = rx * ry * np.pi
  61. theta = np.arange(0, 2 * np.pi + 0.11, 0.1)
  62. ellipsoid_verts = np.column_stack([rx / area * np.cos(theta), ry / area * np.sin(theta)])
  63. rx= 1
  64. ry = rx
  65. area = rx * ry * np.pi
  66. circular_verts = np.column_stack([rx / area * np.cos(theta), ry / area * np.sin(theta)])
  67. c = "second_order"
  68. distance_bins = connectivity_dict[c]["distances"]
  69. styles = [
  70. {
  71. "label": "polar",
  72. "marker": ellipsoid_verts
  73. },
  74. {
  75. "label": "circular",
  76. "marker": circular_verts
  77. }
  78. ]
  79. for morphology, style in zip(reversed(morphologies), reversed(styles)):
  80. number_of_connections = connectivity_dict[c][morphology]
  81. ax.plot(distance_bins[:-1], number_of_connections, ls ='--')
  82. ax.scatter(distance_bins[0:-2:5], number_of_connections[0:-1:5], **style)
  83. ax.grid()
  84. ax.set_axisbelow(True)
  85. ax.legend()
  86. ax.set_xlabel("Distance (um)")
  87. ax.set_ylabel("<# of connections>")
  88. ax.set_xlim(0,400)
  89. fig.tight_layout()
  90. fig.savefig(image_folder+"poster_distance_dependent_second_order_connectivity.png", dpi=300)
  91. fig.savefig(image_folder+"poster_distance_dependent_second_order_connectivity.pdf")