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="659a434e8406eea0-a8d5c711-4f1e402c-b6108146-c3ead066e40e364c48971bbd"><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);

...


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')

...



axes(a2)

...


hold on

...


set(gca,'xcolor','r','ycolor','r')

...


lims(3:4,

...

:-) = ginput(2);

...


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

...

  1. [ x0 y0 x2 y2 = [ ch0 ch1 ch2 ch3 ]
  2. x1 y1 x3 y3 ]
  3. now each column corresponds to one channel.

print "limits array : ", lims

...

] )
# \[ 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.