Plot graphs and play animation with bpy or bge
What you use will depend on what result you want to have.

You would most likely use the game engine if you want to watch your animation in real-time as the data is collected.

You would use a render engine (whether that is BI, Cycles, Luxrender...) if you want to capture the data then render the animation and watch the video you made hours or days after you captured the data. You can also do this in two stages, capture the data to file and then use that data to create the animation in blender. This options also gives you the flexibility to clean up or enhance the animation before you render the final video.

It is also possible to combine real-time viewing with an after the fact video. To do this you would have your script moving items in the 3dview as it is recording the animation for later rendering. Note that recording the animation for later adds some overhead that may slow down your "live" playback depending on the scene complexity.

This answer provides an example of collecting data from an external process without blocking blender. I expect it can be adapted for use in either scenario.