Title Page Copyright and Credits Matplotlib for Python Developers Second Edition Dedication Packt Upsell Why subscribe? PacktPub.com Contributors About the authors About the reviewer Packt is searching for authors like you Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Reviews Introduction to Matplotlib What is Matplotlib? Merits of Matplotlib Easy to use Diverse plot types Hackable to the core (only when you want) Open source and community support What's new in Matplotlib 2.x? Improved functionality and performance Improved color conversion API and RGBA support Improved image support Faster text rendering Change in the default animation codec Changes in default styles Matplotlib website and online documentation Output formats and backends  Static output formats Raster images Vector images Setting up Matplotlib Installing Python Python installation for Windows  Python installation for macOS Python installation for Linux Installing Matplotlib About the dependencies Installing the pip Python package manager Installing Matplotlib with pip Setting up Jupyter Notebook Starting a Jupyter Notebook session Running Jupyter Notebook on a remote server Editing and running code Manipulating notebook kernel and cells Embed your Matplotlib plots Documenting in Markdown Save your hard work! Summary Getting Started with Matplotlib Loading data List NumPy array pandas DataFrame Our first plots with Matplotlib Importing the pyplot Line plot Scatter plot Overlaying multiple data series in a plot Multiline plots Scatter plot to show clusters Adding a trendline over a scatter plot Adjusting axes, grids, labels, titles, and legends Adjusting axis limits Adding axis labels Adding a grid Titles and legends Adding a title Adding a legend A complete example Saving plots to a file Setting the output format Setting the figure resolution Jupyter support Interactive navigation toolbar Configuring Matplotlib Configuring within Python code Reverting to default settings Global setting via configuration rc file Finding the rc configuration file Editing the rc configuration file Summary Decorating Graphs with Plot Styles and Types Controlling the colors Default color cycle Single-lettered abbreviations for basic colors Standard HTML color names RGB or RGBA color code Hexadecimal color code Depth of grayscale Colormaps Creating custom colormaps Line and marker styles Marker styles Choosing the shape of markers Using custom characters as markers Adjusting marker sizes and colors Fine-tuning marker styles with keyword arguments Line styles Color Line thickness Dash patterns Designing a custom dash style Cap styles Spines More native Matplotlib plot types Choosing the right plot Histogram Bar plot Setting bar plot properties Drawing bar plots with error bars using multivariate data Mean-and-error plots Pie chart Polar chart Controlling radial and angular grids Text and annotations Adding text annotations Font Mathematical notations Mathtext LaTeX support External text renderer Arrows Using style sheets Applying a style sheet Creating own style sheet Resetting to default styles Aesthetics and readability considerations in styling Suitable font styles Effective use of colors Keeping it simple Summary Advanced Matplotlib Drawing Subplots Initiating a figure with plt.figure() Initiating subplots as axes with plt.subplot() Adding subplots with plt.figure.add_subplot() Initiating an array of subplots with plt.subplots() Shared axes Setting the margin with plt.tight_layout() Aligning subplots of different dimensions with plt.subplot2grid() Drawing inset plots with fig.add_axes() Adjusting subplot dimensions post hoc with plt.subplots_adjust Adjusting axes and ticks Customizing tick spacing with locators Removing ticks with NullLocator Locating ticks in multiples with MultipleLocator Locators to display date and time Customizing tick formats with formatters Using a non-linear axis scale More on Pandas-Matplotlib integration Showing distribution with the KDE plot Showing the density of bivariate data with hexbin plots Expanding plot types with Seaborn  Visualizing multivariate data with a heatmap Showing hierarchy in multivariate data with clustermap Image plotting Financial plotting 3D plots with Axes3D Geographical plotting Basemap GeoPandas Summary Embedding Matplotlib in GTK+3 Installing and setting up GTK+3 A brief introduction to GTK+3 Introduction to the GTK+3 signal system Installing Glade Designing the GUI using Glade Summary Embedding Matplotlib in Qt 5 A brief introduction to Qt 5 and PyQt 5 Differences between Qt 4 and PyQt 4 Introducing QT Creator / QT Designer Summary Embedding Matplotlib in wxWidgets Using wxPython A brief introduction to wxWidgets and wxPython Embedding Matplotlib in a GUI from wxGlade Summary Integrating Matplotlib with Web Applications Installing Docker Docker for Windows users Docker for Mac users More about Django Django development in Docker containers Starting a new Django site Installation of Django dependencies Django environment setup Running the development server Showing Bitcoin prices using Django and Matplotlib Creating a Django app Creating a simple Django view Creating a Bitcoin candlestick view Integrating more pricing indicators Integrating the image into a Django template Summary Matplotlib in the Real World Typical API data formats CSV JSON Importing and visualizing data from a JSON API Using Seaborn to simplify visualization tasks Scraping information from websites Matplotlib graphical backends Non-interactive backends Interactive backends Creating animated plot Summary Integrating Data Visualization into the Workflow Getting started Visualizing sample images from the dataset Importing the UCI ML handwritten digits dataset Plotting sample images Extracting one sample each of digits 0-9 Examining the randomness of the dataset Plotting the 10 digits in subplots Exploring the data nature by the t-SNE method Understanding t-Distributed stochastic neighbor embedding  Importing the t-SNE method from scikit-learn Drawing a t-SNE plot for our data Creating a CNN to recognize digits Evaluating prediction results with visualizations Examining the prediction performance for each digit  Extracting falsely predicted images Summary