The canvas html element may be the best backing and is used as such in many libraries (I know flot and processingjs mentionned by sibblings are using it)
canvas element is the lower API abstraction level you can get, which may be conceptually similar to Cairo or GDI
- http://en.wikipedia.org/wiki/Canvas_(HTML_element)
- https://developer.mozilla.org/En/HTML:Canvas