Plot millions of points in Python 30x quicker
I like numbers. However, if you give me a choice between staring at a table full of numbers and a chart, I'll probably choose a chart. Very often when looking at markets it's easier to look at a chart, rather than staring at pages of numbers. The great thing with interactive charts is that we can get more easily explore a dataset, zooming in to delve into a time series more thoroughly, if we have enough data. In Python there are lots of great charting libraries. I've written my own library chartpy, which creates a common interface for plotting in plotly, matplotlib and bokeh. Simply, change a single keyword to switch between the libraries (rather than having to learn the different APIs of each library).
Let's take for example a plot made up of minute data for EUR/USD, sometimes we might simply want the bigger picture, at other times we might want to zoom in to look at specific episodes on an intraday basis. If we're looking at several years of data though, this means plotting lots of data: over 10 years this would result in over 3 million points. If you try to plot millions of points in matplotlib, it'll take a long time to display. Furthermore, try zooming in on these complex plots and it'll also take time to update. So what's the solution if you want to display millions of points quickly in Python?
Computers are obviously capable of displaying very complex graphics, just think of all the cutting edge computer games, which use the powerful GPUs on graphics cards sitting in our computers. Can we use tap into similar technology to plot complicated market data? Yes, we can! One library which makes it possible is VisPy, which leverages the powerful GPUs on modern graphics cards for creating graphics. I have written a wrapper for VisPy, in my chartpy library, so users just need to change a single keyword to switch from matplotlib to VisPy. I've also written a code example, at...
To read the full article click here to go to the Cuemacro website