The putData-columns interface is very simple but has very limited capabilities. Below you find an example for putData-gqes which is more flexibel, in particular it is demonstrated how 2 plots are displayed in the same frame. The restriction that data have to have the same length is dropped.
import HasyUtils, Spectra
import random
def main():
if not HasyUtils.isSardanaMonitorAlive():
print "SardanaMonitor is not alive"
return
MAX = 10
pos = [float(n)/MAX for n in range( MAX)]
d1 = [random.random() for n in range( MAX)]
d2 = [random.random() for n in range( MAX)]
#
# the third gqe has a different length
#
pos3 = [float(n)/MAX for n in range( MAX + 10)]
d3 = [random.random() for n in range( MAX + 10)]
gqeList = []
#
# at: (2,1,1) the first position in a 2 x 1 matrix
#
gqeList.append( { "name": "d1_c01", "x" : pos, "y": d1, "at": "(2,1,1)",
"xlabel":"Position", "ylabel": "Data"})
#
# primitive: 0 - line, 1 - marker
# type: line/marker types
# colour: 1 - black, 2 - red, 3 - green, 4 - blue, etc.
# overlay: d1_c02 is displayed in the frame of d1_c01
#
gqeList.append( { "name": "d1_c02", "x" : pos, "y": d2, "at": "(2,1,1)",
"overlay": "d1_c01", "colour": 4, "primitive": 1, "type": 3} )
gqeList.append({ "name": "d1_c03", "x" : pos3, "y": d3, "at": "(2,1,2)",
"colour": 3} )
hsh = { "putData":
{"title": "Example with overlay",
"gqes": gqeList}}
hsh = HasyUtils.toSardanaMonitor( hsh)
HasyUtils.dct_print( hsh)
if hsh[ 'result'].upper() != 'DONE':
print "error"
return
main()