Plotting in real time
Short answer: it depends on your use case. 
If you simply want a static graph that updates in real time, then your approach is totally fine.
On the other hand, threading is useful when the user needs to somehow interact with the plot (like zoom in/out, etc) because otherwise I/O operations would block the main routine that handles user interaction, so the user might experience "pauses" periodically.
In python, is it necessary to use threading when plotting in real time? In my specific case, I wish to continuously plot from a .csv that is having lines of data added to it indefinitely. Can't I just create a function that re-reads the data source with every iteration of the plot update?