With this chapter, we reached the culmination of our adventure through the advanced topics in the world of matplotlib. Many of the topics covered in the latter half of this book crossed into other domains, as is often the case with the advanced usage of any software. These topics explored systems that did not have a direct and obvious connection with the narrow scope of matplotlib as a library. Rather, they reflected the usage patterns that are requested of software engineers working on real-world problems.
This bears further reflection. Often, computing problems in both research settings and start-ups are initially tackled quickly to get the results and examine the data as soon as possible. The next round of usage might require the addition of a bit more functionality or some other code tweaks. After a few months, you may be in any of the following situations:
In particular, you may find out that in order to plot data, you have to execute vast, monolithic functions, whose final operations produce results that get plotted by matplotlib. In many cases, you may find out that properly refactoring your code and parallelizing it will allow you to perform the expensive computations concurrently, ultimately allowing your plot rendering to happen much more quickly.
In other words, even though matplotlib doesn't directly enter the realm of parallelization, at one time or another, our matplotlib workflows may require tight coordination with computations running in clustered environments, utilizing parallel execution patterns.. Ultimately, the developer or user experience that is perceived to be matplotlib can be improved with the techniques outlined in this chapter and in fact, the techniques that were covered in the entire book.