Matplotlib

Matplotlib


Matplotlib is a cross-platform, data visualization and graphical plotting library for Python and its numerical extension NumPy. As such, it offers a viable open source alternative to MATLAB. Developers can also use matplotlib’s APIs (Application Programming Interfaces) to embed plots in GUI applications

A Python matplotlib script is structured so that a few lines of code are all that is required in most instances to generate a visual data plot. The matplotlib scripting layer overlays two APIs:

The pyplot API is a hierarchy of Python code objects topped by?matplotlib.pyplot
An OO (Object-Oriented) API collection of objects that can be assembled with greater flexibility than pyplot. This API provides?direct access to Matplotlib’s backend layers.??
Matplotlib and Pyplot in Python

The pyplot?API has a convenient MATLAB-style stateful interface. In fact, matplotlib was originally written as an open source alternative for MATLAB. The OO API and its interface is more customizable and powerful than pyplot, but considered more difficult to use. As a result, the pyplot interface is more commonly used, and is referred to by default in this article.?

Understanding matplotlib’s pyplot API is key to understanding how to work with plots:

matplotlib.pyplot.figure: Figure?is the top-level container. It includes everything visualized in a plot including one or more?Axes.
matplotlib.pyplot.axes:?Axes?contain most of the elements in a?plot:?Axis, Tick, Line2D, Text,?etc., and sets the coordinates. It is the area in which data is plotted. Axes include the X-Axis, Y-Axis, and possibly a Z-Axis, as well.

For more information about the pyplot API and interface, refer to?What Is Pyplot In Matplotlib

Installing Matplotlib

Matplotlib and its dependencies can be downloaded as a binary (pre-compiled) package from the Python Package Index (PyPI), and installed with the following command:

python -m pip install matplotlib

Matplotlib is also available as uncompiled source files. Compiling from source will require your local system to have the appropriate compiler for your OS, all dependencies, setup scripts, configuration files, and patches available. This can result in a fairly complex installation. Alternatively, consider using the?ActiveState Platform?to automatically build matplotlib from source and package it for your OS.

Matplotlib UI Menu

When matplotlib is used to create a plot, a User Interface (UI) and menu structure are generated. The UI can be used to customize the plot, as well as to pan/zoom and toggle various elements.

Matplotlib and NumPy

Numpy is a package for scientific computing. Numpy is a required dependency for matplotlib, which uses numpy functions for numerical data and multi-dimensional arrays as shown in the following code snippet:


The source code for this example is available in the?Matplotlib: Plot a Numpy Array?section? further down in this article.

Matplotlib and Pandas

Pandas is a library used by matplotlib mainly for data manipulation and analysis. Pandas provides an in-memory 2D data table object called a Dataframe. Unlike numpy, pandas is not a required dependency of matplotlib.

Pandas and numpy are often used together, as shown in the following code snippet:

The source code for this example is available in the?Matplotlib: Plot a Pandas Dataframe?section? further down in this article.

How to Create Matplotlib Plots

This section shows how to create examples of different kinds of plots with matplotlib.

Matplotlib Line Plot

In this example, pyplot is imported as plt, and then used to plot three numbers in a straight line:??

import matplotlib.pyplot as plt

# Plot some numbers:
plt.plot([1, 2, 3]) 
plt.title(”Line Plot”)?

# Display the plot:
plt.show()

Figure 1.?Line plot generated by Matplotlib:

Matplotlib Pie Plot

In this example, pyplot is imported as plt, and then used to create a chart with four sections that have different labels, sizes and colors:

import matplotlib.pyplot as plt

# Data labels, sizes, and colors are defined:
labels = 'Broccoli', 'Chocolate Cake', 'Blueberries', 'Raspberries'
sizes = [30, 330, 245, 210]
colors = ['green', 'brown', 'blue', 'red']

# Data is plotted:
plt.pie(sizes, labels=labels, colors=colors)

plt.axis('equal')
plt.title(“Pie Plot”)
plt.show()

Figure 2.?Pie plot generated by Matplotlib:

Matplotlib Bar Plot

In this example, pyplot is imported as plt, and then used to plot three vertical bar graphs:

import matplotlib.pyplot as plt
import numpy as np?

# Create a Line2D instance with x and y data in sequences xdata, ydata:

# x data:
xdata=['A','B','C']

# y data:
ydata=[1,3,5]

plt.bar(range(len(xdata)),ydata)
plt.title(“Bar Plot”)
plt.show()

Figure 3.?Bar plot generated by Matplotlib:

Matplotlib: Plot a Numpy Array

In this example, pyplot is imported as plt, and then used to plot a range of numbers stored in a numpy array:

import numpy as np 
from matplotlib import pyplot as plt?

# Create an ndarray on x axis using the numpy range() function:
x = np.arange(3,21)

# Store equation values on y axis:
y = 2 * x + 8 
plt.title("NumPy Array Plot")

# Plot values using x,y coordinates:
plt.plot(x,y)
plt.show()

Matplotlib: Plot a Pandas DataFrame

In this example, pyplot is imported as plt, and then used to plot a pandas dataframe:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

# Hide axes without removing it:
fig.patch.set_visible(False)
ax.axis('off')
ax.axis('tight')

# Create a numpy random array in a pandas dataframe with 10 rows, 4 columns:
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))

plt.title("Pandas Dataframe Plot")
ax.table(cellText=df.values, colLabels=df.columns, loc='center')

fig.tight_layout()

plt.show()





        

要查看或添加评论,请登录

Sejal Baweja的更多文章

  • Team Unity

    Team Unity

    One of the most basic and foundational aspects of team building is the concept of team cohesion. It’s the motivating…

  • Random Forest

    Random Forest

    Random forest is a commonly-used machine learning algorithm trademarked by Leo Breiman and Adele Cutler, which combines…

  • Decision Tree

    Decision Tree

    A decision tree is a non-parametric supervised learning algorithm, which is utilized for both classification and…

  • Hibernate

    Hibernate

    Hibernate is an open source?object relational mapping (ORM)?tool that provides a?framework?to…

  • YARN

    YARN

    YARN stands for “Yet Another Resource Negotiator“. It was introduced in Hadoop 2.

  • Medical Coding

    Medical Coding

    Medical coding is the transformation of healthcare diagnosis, procedures, medical services, and equipment into…

  • CCAR

    CCAR

    Comprehensive Capital Analysis and Review (CCAR)The Comprehensive Capital Analysis and Review is a stress-test regime…

  • Logistic Regression

    Logistic Regression

    Logistic regression is one of the most popular Machine Learning algorithms, which comes under the Supervised Learning…

  • Model Validation

    Model Validation

    Model validation?is the process that is carried out after?Model Training?where the trained model is evaluated with a…

  • Node.js

    Node.js

    Node.js is an open-source, cross-platform JavaScript runtime environment and library for running web applications…

社区洞察

其他会员也浏览了