#### Overview of this book

In this book, you’ll get hands-on with customizing your data plots with the help of Matplotlib. You’ll start with customizing plots, making a handful of special-purpose plots, and building 3D plots. You’ll explore non-trivial layouts, Pylab customization, and more about tile configuration. You’ll be able to add text, put lines in plots, and also handle polygons, shapes, and annotations. Non-Cartesian and vector plots are exciting to construct, and you’ll explore them further in this book. You’ll delve into niche plots and visualize ordinal and tabular data. In this book, you’ll be exploring 3D plotting, one of the best features when it comes to 3D data visualization, along with Jupyter Notebook, widgets, and creating movies for enhanced data representation. Geospatial plotting will also be explored. Finally, you’ll learn how to create interactive plots with the help of Jupyter. Learn expert techniques for effective data visualization using Matplotlib 3 and Python with our latest offering -- Matplotlib 3.0 Cookbook
Preface
Free Chapter
Heavy Customization
Drawing on Plots
Special Purpose Plots
3D and Geospatial Plots
Interactive Plotting
Other Books You May Enjoy

# GUI neutral widgets

This section describes a selection of the different kinds of widgets along with how to add interactivity to these widgets using callbacks.

# How to add the basic GUI neutral widgets

We will begin by taking a look at cursor. The cursor will generate a widget that places little x axis and y axis cursors over the top of the axis. The first argument to any widget is the axis that we want to attach it to. In this case, we want to attach it to the current axis. By doing this, by default, it should look unchanged.

1. However, as we hover over the plot, we get the XY cursor, as shown in the following output after the code:
`# Basic cursornums = np.arange(0,10,0.1)plt.plot(nums, np.sin(nums))Cursor(plt.gca())`

Following...