Have actual plotting happen in the plot's native coordinates and use a transform to get it where you want it. http://www.w3.org/TR/SVG/ SVG Notes: * Apply styles to group of objects, not each one. SVG Functions: * Ability to include it in SVG documents themselves * Also reference SVG through inline, object, embed, or iframe. * .firstChild.textContent = "Blah" * If MochiKit.SVG is included in an SVG document, svgDocument and svgElement come automatically set. * Integrate Canvas in IE and SVG in IE code (MochiKit is maximally cross-browser where possible) * Events -- make zoomable, dragable, rotateable with easy functions Server: * Parallel Python libraries for server-side stuff * Ability to shuttle generated SVG DOM back to server for conversion to PDF * Command-line Java Script interpreter to run same JS code natively. * Auxiliary JS that sends rendered SVG back so page can be shown with all static (SVG or PNG) content SVG Notes: * Apply styles to group of objects, not each one. Canvas: http://developer.mozilla.org/en/docs/Drawing_Graphics_with_Canvas http://developer.apple.com/documentation/AppleApplications/Reference/SafariJSRef/Classes/Canvas.html Decorations on the plot: * Axes * Axes tick marks * Grid * Value Labels Things that can be drawn on plot: * Horizontal and Vertical lines * Circles and other SVG shit, all automatically in plot coordinates * Arrows on line plots when they go off the top/bottom -- more generally, specify what to put at the ends of the ranges (open circles, closed squares, arrows) -- and a few places in the middle too to give a sense of contour. Unfortunately, not at every new path segment. Static vs Dynamics: * Simple package to render static graphs client-side * More complicated package to provide interaction (zooming, panning, cross-hair tracing) * Read in XML description vs totally programatic. Can dynamically map one to the other. "Record" flag on. Decorations off the plot: * Title * Axes on the side of plot * Box around plot * Tick marks on axes or box * Axes Name Labels Plots Themselves: * Scatter plot * Bar plot * Line Plot - with and without shading to axis or to another plot - With or without a dot style * Pie Chart Misc: * Complex Plot with rainbow gradient * LaTeX equations to SVG using either paths or embedded font * Widgets in canvas/SVG for sliders and such Data Based versus Function Based * Data Based can auto set x & y ranges * Function based can only set y range * Get passed in a JavaScript function for now * Text that can be evaled