During the last post we extended mPlot formatting to axes and figure objects. This post we are going to add some helper methods to the mPlot class. Recall back in the second post of this series we added several methods for interfacing with the plotCounter variable. While these methods did not do anything magical, they were extremely helpful and made interaction with the class easier. The methods that we are going to add this time will allow easy access to current line settings, such as marker size or marker type.
Methods to Add
After using this class for some time, I found myself continually altering specific properties within the mPlot class. While this worked, keeping track of the plotCounter indexing (to ensure modifications were to the current line settings) was a hassle. Hence methods to interface with these properties made sense. The methods we are going to add this time will be 1) setCurrentMarkerType, 2) setCurrentMarkerSize, 3) setCurrentLineStyle and 4) setCurrentMarkerEdgeColor. As the name of each of these methods suggests, they will change some property of the current line.
The code for these 4 methods is pretty straightforward. Once again, the content is nothing spectacular, but incorporates handy features that you will come to use. Notice we’ve added a new methods block to the class. This is not required (the code could be added to any methods block with the desired scope) but a useful habit for bundling methods designed to perform similar tasks.
…..take a minute and study the above code. Some error trapping checks were put in place to ensure that the input arguments are valid marker types and line styles. Other than these lines, most of the methods could be reduced to one-liners.
Example Using Methods
Lets work through an example to demonstrate some uses for this newly added functionality.
Imagine we have 3 different filters that are of interest. We would like to display the magnitude response of each filter for several different filter orders. Suppose we are testing filter orders of 10, 20 and 30 and we want the markers to be circles, squares and triangles, respectively. So our marker type will reflect the filter order and the marker/line color will be indicative of filter type. The code below should get the job done.
I’ve outlined several sections of the code in red. This is the code that handles the plotting. The other sections are merely constructing filter coefficients and evaluating the magnitude response of the filters. The code produces the result below.
Notice that each marker reflects a particular filter order….as we intended.
The other methods that we’ve added could be explored in more detail; but for now the above example demonstrates the functionality in a practical form. So after 4 parts to this series we have constructed a framework for our plotting class and fleshed out an amount of functionality. Stay tuned for more!