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="c55862be96fd7be9-7a9c543d-4b8f4f63-86c384f7-4b7e50c3e2f7d7db400aa0f8"><ac:plain-text-body><![CDATA[Note also the use of paranthesis, array() in MatLab, array[] in MatPlotLib.  

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

axes(a1)
hold on
set(gca,'xcolor','r','ycolor','r')
lims(1:2,(smile) = 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,(smile) = 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')

plt.axes(a1)
plt.hold(True)
aa = plt.gca()
aa.set_xcolor = 'k'
aa.set_ycolor = 'k'
limslista = plt.ginput(2)

  1. 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)
  2. list: (x2,y2),(x3,y3)

limsa = np.array(limslista)

  1. [ x0 y0
  2. x1 y1 ]

limsb = np.array(limslistb)

  1. [ x2 y2
  2. 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

  1. 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.