I think you have the following options:
- Make the drawing code faster (if you can, optimize it).
- Update only the needed part of the graph (if you have this option).
- Slow down the refresh time.
I guess the option (3) is the only one really viable. You may keep the correctness of the graphic representation (skipping 'intermediate' frames).
Option (2) could be viable if, for instance, your graph represents
'doesn't move too much' with each repaint. Then you may scroll left
(this operation should be faster then recomputing and drawing) a big part of the graph and recompute (and draw) just a small part of it.