Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

MatLab

MatPlotLib

Comments

Code Block
a1 = subplot(121);
loglog(channels(:,1),channels(:,2),'o')
xlabel('CH0')
ylabel('CH1')
a2 = subplot(122);
loglog(channels(:,3),channels(:,4),'o')
xlabel('CH2')
ylabel('CH3')
Code Block
import matplotlib.pyplot as plt
import numpy as np

a1 = plt.subplot(221)
plt.loglog(channels[:,0],channels[:,1], 'o' )
plt.xlabel('CH0')
plt.ylabel('CH1')
a2 = plt.subplot(222)
plt.loglog(channels[:,2],channels[:,3], 'o' )
plt.xlabel('CH2')
plt.ylabel('CH3')

channels is a 4xN array of floats, where N is the number of events. Each column corresponds to one out of four Ipimb channels.

Note that the arrays are indexed with 1,2,3,4 in MatLab and 0,1,2,3 in MatPlotLib/NumPy/Python.

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="9097dbe98ebf0495-45d35b31-4f334135-a697af10-6cdb90fa3e48cbe0921e924f"><ac:plain-text-body><![CDATA[Note also the use of paranthesis, array() in MatLab, array[] in MatPlotLib.  

]]></ac:plain-text-body></ac:structured-macro>

Code Block

axes(a1)
hold on
set(gca,'xcolor','r','ycolor','r')
lims(1:2,:-) = ginput(2);

axes(a2)
hold on
set(gca,'xcolor','r','ycolor','r')
lims(3:4,:-) = ginput(2);

set(gca,'xcolor','k','ycolor','k')
fbool = (filtvec(channels(:,1),lims(1:2,1))&filtvec(channels(:,2),lims(1:2,2)));
loglog(channels(fbool,1),channels(fbool,2),'or

...

')

...


set(gca,'xcolor','k','ycolor','k')
fbool = (filtvec(channels(:,3),lims(3:4,1))&filtvec(channels(:,4),lims(3:4,2)));
loglog(channels(fbool,3),channels(fbool,4),'or')

Code Block

plt.axes(a1)
plt.hold(True)
aa = plt.gca()
aa.set_xcolor = 'k'
aa.set_ycolor = 'k'
limslista = plt.ginput(2)
# list: (x0,y0),(x1,y1)

plt.axes(a2)
plt.hold(True)
bb = plt.gca()
bb.set_xcolor = 'k'
bb.set_ycolor = 'k'
limslistb = plt.ginput(2)
# list: (x2,y2),(x3,y3)

limsa = np.array(limslista)
# \[ x0   y0
# x1   y1 \]

limsb = np.array(limslistb)
# \[ x2   y2
# x3   y3 \]

lims = np.hstack( [limsa, limsb] )
# \[ x0  y0  x2  y2       =    \[ ch0  ch1  ch2  ch3 \]
# x1  y1  x3  y3 \]
# now each column corresponds to one channel.

print "limits array : ", lims

# fbool is an array of event indices where these conditions are met.
fbools0 = (channels[:,0]>lims[:,0].min())&(channels[:,0]<lims[:,0].max())
fbools1 = (channels[:,1]>lims[:,1].min())&(channels[:,1]<lims[:,1].max())
fbools2 = (channels[:,2]>lims[:,2].min())&(channels[:,2]<lims[:,2].max())
fbools3 = (channels[:,3]>lims[:,3].min())&(channels[:,3]<lims[:,3].max())

In MatLab, lims is an expandable array that holds limits as set by input from mouse click on the plot (ginput).
NumPy arrays cannot be expanded, so I've chosen to append to a python list first, then fill a NumPy array for the usage to look the same.