-
Notifications
You must be signed in to change notification settings - Fork 3
Plotting API
hangfromthefloor edited this page Jul 13, 2011
·
15 revisions
Proposed plan includes simultaneous y-axes (transforms of the coordinate systems)
plottable_data = {
'type': '1d',
'title': 'I am the title of the graph',
'clear_existing': false,
'series': [
'x': {'linear': {'data':[1,2,3,4], 'label':'position (m)'}},
'y': [{
'linear': {'data': [1,10,100,1000], 'label':'TbFe Intensity (cps)'},
'log10': {'data': [0,1,2,3], 'label':'Log10 (TbFe Intensity (cps))'},
}],
'color': 'Red',
'style': 'line',
],
};
Ability to choose arbitrary axes
plottable_data = {
'type': 'nd',
'title': 'I am the title of the graph',
'clear_existing': false,
'series': [
'orderx': ['Q', 'h', 'k', ... ],
'ordery': ['Intensity', 'SingleDetector', ... ],
'data': {
'Q': {
'label': 'Q',
'values': [1, 2, 3, 4],
'errors': [1, 2, 3, 4],
},
'Intensity': {
'label': 'Intensity',
'values': [1, 2, 3, 4],
'errors': [1, 2, 3, 4],
},
},
'color': 'Red',
'style': 'line',
],
};
The proposed data structure, to be fed over the wire to the plotting engine, is as follows: in JSON,
plottable_data = {
'type': '2d',
'z': [ [1, 2], [3, 4] ],
'title': 'This is the title',
'dims': {
'xmax': 1.0,
'xmin': 0.0,
'ymin': 0.0,
'ymax': 12.0,
'xdim': 2,
'ydim': 2,
},
'xlabel': 'This is my x-axis label',
'ylabel': 'This is my y-axis label',
'zlabel': 'This is my z-axis label',
};
A tool for converting from the industry-standard x,y,z triplets to the row-ordered form above will be provided.