can i use Raphaël js as an alternative to HTML5 canvas?
I don't see why not.
If you check out Modernizr, you'll see it does stuff like detect some of the new HTML5/JS API thingies out there. This is (one example of) what cranial-bore meant when he said "polyfills". With Modernizr (or just your own test script), you test for canvas, and if it exists, let canvas do whatever, and if it doesn't, call/load Raphaël to do stuff.
Also, Canvas can have alternative content itself:
<canvas width="foo" height="bar" id="foobar">
The original Safari implementation had canvas as an EMPTY tag though: <canvas height="foo" width="bar" id="baz"/> so I believe it's older Safari's may have some issue, but... meh.
Anyway remember that canvas is mostly a way to have dynamic pictures. You're not building any DOM and it's not accessible in general (unless you mix in SVG), so if you're using it to dynamically change how some data appears, or something, consider having a static DOM version of that data as well. If the data changes, let <canvas> visually show the change, let the inner alternative content just show the new data (so if it's in a table, you'll have a table in the canvas tag), and offer the same data available via a link or something (for users who can't access canvas but are using a browser who understands it). Or something.
Or you could skip canvas entirely until all the UAs you support can render it, if you want.