introduction to matplotlib the backend layer can be divided into two categoriesuser interface backends (interactivethat support various python windowing systems such as wxwidgets (discussed in the next qttk etc hardcopy backends (non interactivethat support raster and vector graphic outputs the user interface and hardcopy backends are built upon common abstractions referred to as the backend base classes the artist layer the artist layer provides the majority of the functionality that you might consider to be what matplotlib actually doesthat is the generation of the plots and graphs that are rendereddisplayed to the user (or output in particular formatthe artist layer is concerned with things such as the linesshapesaxisand axestext etc that comprise plot the classes used by the artist layer can be classified into one of the following three groupsprimitivescontainers and collectionsprimitives are classes used to represent graphical objects that will be drawn on to figures canvas containers are objects that hold primitives for exampletypically figure would be instantiated and used to create one or more axes etc collections are used to efficiently handle large numbers of similar types of objects although it is useful to be aware of these classesin many cases you will not need to work with them directly as the pyplot api hides much of the detail howeverit is possible to work at the level of figuresaxesticks etc if required