If you checkout the development version of the library from svn, you'll see that it now has a method to draw bitmaps to the display.
You position the cursor where you want your bitmap to be drawn, and then you pass an array of bytes to the drawBitmap function (each byte corresponds to an 8-pixel column).
This means it is limited to displaying graphics whose height is a multiple of 8, but it clips the graphics if you draw too close to the edge...

The problem is that these displays are not pixel-addressable, you can only write 8 pixels at a time (a column), they also don't allow their internal memory to be read. To update a single pixel you have to redraw the column, which means you also have to keep the whole display state in RAM on the ATmega. I don't need to draw vector graphics on the display, so I haven't got around to implement generic drawing operations (not yet anyway).
But to answer your question specifically: it depends on what kind of graphic you want to draw. The easiest one would be a bar graph.
For example, for a graph that occupies the lower two lines of the display (i.e. 48x16 pixels):
byte graph[48 * 2] = { 0x00, 0x00, ..., 0x00 };
int x = 0;
void loop() {
int value = map(analogRead(0), 0, 1023, 0, 15);
if (value >= 8) {
// fill the lower column all black: graph[(x % 48) + 48] = 0xff
// use bit arithmetic to set some of the bits of the upper byte
} else {
// fill the upper column all white: graph[x % 48] = 0x00
// use bit arithmetic to set some of the bits of the lower byte
}
x++;
lcd.setCursor(0, 4);
lcd.drawBitmap(graph, 48, 16);
}
Now this is not the most efficient way to do it, but it would work I guess.