def conn_figure_3d(fig, layer, connd, targets=None, showmask=True, xticks=range(-5, 6), yticks=range(-5, 6), xlim=[-5.5, 5.5], ylim=[-5.5, 5.5]): if targets is None: targets = ((nest.FindCenterElement(layer), 'red'), ) nest.PlotLayer(layer, fig=fig, nodesize=20, nodecolor=(.5, .5, 1.)) for src, clr in targets: if showmask: mask = connd['mask'] else: mask = None nest.PlotTargets(src, layer, fig=fig, mask=mask, probability_parameter=None, src_size=250, tgt_color=clr, tgt_size=60, probability_cmap='Greens') ax = fig.gca() # ax.set_aspect('equal', 'box') plt.draw()
def test_PlotLayer(self): """Test plotting layer.""" nest.ResetKernel() layer = nest.Create('iaf_psc_alpha', positions=nest.spatial.grid(shape=[3, 3], extent=[2., 2.], edge_wrap=True)) nest.PlotLayer(layer) plotted_datapoints = plt.gca().collections[-1].get_offsets().data reference_datapoints = nest.GetPosition(layer) self.assertTrue(np.allclose(plotted_datapoints, reference_datapoints))
def conn_figure(fig, layer, connd, targets=None, showmask=True, kern=None, xticks=range(-5, 6), yticks=range(-5, 6), xlim=[-5.5, 5.5], ylim=[-5.5, 5.5]): if targets is None: targets = ((nest.FindCenterElement(layer), 'red'), ) nest.PlotLayer(layer, fig=fig, nodesize=60) for src, clr in targets: if showmask: mask = connd['mask'] else: mask = None nest.PlotTargets(src, layer, fig=fig, mask=mask, probability_parameter=kern, src_size=250, tgt_color=clr, tgt_size=20, mask_color='red', probability_cmap='Greens') beautify_layer(layer, fig, xlim=xlim, ylim=ylim, xticks=xticks, yticks=yticks, xlabel='', ylabel='') fig.gca().grid(False)
# # For reference purposes, e.g., printing, we collect all populations # in a tuple: populations = (retina, TpRelay, TpInter, Rp) + tuple( Vp_h_layers.values()) + tuple(Vp_v_layers.values()) ############################################################################## # Inspection # ---------- # # We can now look at the network using `PrintNodes`: nest.PrintNodes() # We can also try to plot a single layer in a network. All layers have # equal positions of the nodes. nest.PlotLayer(Rp) plt.title('Layer Rp') ############################################################################## # Synapse models # =------------- # # Actual synapse dynamics, e.g., properties such as the synaptic time # course, time constants, reversal potentials, are properties of # neuron models in NEST and we set them in section `Neuron models`_ # above. When we refer to *synapse models* in NEST, we actually mean # connectors which store information about connection weights and # delays, as well as port numbers at the target neuron (``rport``) # and implement synaptic plasticity. The latter two aspects are not # relevant here. #
ax.grid(True) ax.set_axisbelow(True) ax.set_xlabel(xlabel) ax.set_ylabel(ylabel) return # -------------------------------------------------- nest.ResetKernel() #{ layer1 #} l = nest.Create('iaf_psc_alpha', positions=nest.spatial.grid(shape=[5, 5])) #{ end #} fig = nest.PlotLayer(l, nodesize=50) beautify_layer(l, fig, xlabel='x-axis (columns)', ylabel='y-axis (rows)') ax = fig.gca() tx = [] for r in range(5): tx.append( ax.text(0.65, 0.4 - r * 0.2, str(r), horizontalalignment='center', verticalalignment='center')) tx.append( ax.text(-0.4 + r * 0.2, 0.65, str(r), horizontalalignment='center',
""" import nest import matplotlib.pyplot as plt nest.ResetKernel() pos = nest.spatial.free( [nest.random.uniform(-0.75, 0.75), nest.random.uniform(-0.5, 0.5)], extent=[2., 1.5]) l1 = nest.Create('iaf_psc_alpha', 12, positions=pos) nest.PrintNodes() nest.PlotLayer(l1, nodesize=50) # beautify plt.axis([-1.0, 1.0, -0.75, 0.75]) plt.axes().set_aspect('equal', 'box') plt.axes().set_xticks((-0.75, -0.25, 0.25, 0.75)) plt.axes().set_yticks((-0.5, 0, 0.5)) plt.grid(True) plt.xlabel('Extent: 2.0') plt.ylabel('Extent: 1.5') plt.show() # plt.savefig('grid_iaf_irr.png')
ax.set_axisbelow(True) ax.set_xlabel(xlabel) ax.set_ylabel(ylabel) return # -------------------------------------------------- nest.ResetKernel() #{ layer1 #} layer = nest.Create('iaf_psc_alpha', positions=nest.spatial.grid(shape=[5, 5])) #{ end #} fig = nest.PlotLayer(layer, nodesize=50) beautify_layer(layer, fig, xlabel='x-axis (columns)', ylabel='y-axis (rows)') ax = fig.gca() tx = [] for r in range(5): tx.append(ax.text(0.65, 0.4 - r * 0.2, str(r), horizontalalignment='center', verticalalignment='center')) tx.append(ax.text(-0.4 + r * 0.2, 0.65, str(r), horizontalalignment='center', verticalalignment='center')) # For bbox_extra_artists, see # https://github.com/matplotlib/matplotlib/issues/351 # plt.savefig('../user_manual_figures/layer1.png', bbox_inches='tight', # bbox_extra_artists=tx)
BCCN Tutorial @ CNS*09 Hans Ekkehard Plesser, UMB """ import nest import matplotlib.pyplot as plt import numpy as np for ctr in [(0.0, 0.0), (-2.0, 2.0), (0.5, 1.0)]: plt.figure() nest.ResetKernel() l1 = nest.Create('iaf_psc_alpha', positions=nest.spatial.grid(shape=[4, 3], extent=[2., 1.5], center=ctr)) nest.PlotLayer(l1, nodesize=50, fig=plt.gcf()) # beautify plt.axis([-3, 3, -3, 3]) plt.axes().set_aspect('equal', 'box') plt.axes().set_xticks(np.arange(-3.0, 3.1, 1.0)) plt.axes().set_yticks(np.arange(-3.0, 3.1, 1.0)) plt.grid(True) plt.xlabel('4 Columns, Extent: 1.5, Center: %.1f' % ctr[0]) plt.ylabel('2 Rows, Extent: 1.0, Center: %.1f' % ctr[1]) plt.show() # plt.savefig('grid_iaf_oc_{}_{}.png'.format(ctr[0], ctr[1]))