• Skip to secondary menu
  • Skip to main content
  • Skip to primary sidebar

Python and R Tips

Learn Data Science with Python and R

  • Home
  • Python
  • Pandas
    • Pandas 101
  • tidyverse
    • tidyverse 101
  • R
  • Linux
  • Conferences
  • Python Books
  • About
    • Privacy Policy
You are here: Home / Python / 8 Plot types with Matplotlib in Python

8 Plot types with Matplotlib in Python

January 15, 2023 by cmdlinetips

Matplotlib, the most comprehensive visualisation library in Python for creating all kinds of plots of data visualization. However, it can also be a bit frustrating and daunting given so much you can do with Matplotlib.

In this post, we will learn how to use 8 commonly used plot types, like scatter plot, histogram, with real simple examples. Our goal here is not creating publication quality plot, but making basic plots first.

To get started let us load Numpy and Matplotlib. We are using the Matplotlib version 3.6.3

import numpy as np
import matplotlib
matplotlib.__version__
3.6.3
import matplotlib.pyplot as plt

1. Plotting with Matplotlib’s plot() function

Matplotlib.pyplot’s plot() function is useful for making line plots between two variables. Line plots are ideal for time-series like plots where we have time on x-axis. Here we generate data using random numbers to make line plot using plot() function.

And in this post we use Random Generator class to generate random numbers.

rng = np.random.default_rng(42)

For x-axis we generate range of integers using Numpy’s arange() function. And for y-axis we create random numbers from uniform distribution. And now we have the data ready to make a line plot using Matplotlib.

X = np.arange(11)
Y = X  + rng.uniform(0,5,11)
print(X)
print(Y)

[ 0  1  2  3  4  5  6  7  8  9 10]
[ 3.86978024  3.1943922   6.2929896   6.48684015  4.47088674  9.87811176
  9.80569851 10.93032153  8.64056816 11.25192969 11.85399012]

Matplotlib’s plot function takes the values needed for x and y axis on the plot as arguments.

# lineplot with Matplotlib's plot() function
plt.plot(X,Y)
# Add x and y axis labels
plt.xlabel("X", size=16)
plt.ylabel("Y", size=16)
# add title
plt.title("Matplotlib plot() example", size=20)
plt.savefig("lineplot_with_Matplotlib_plot.png",
                    format='png',dpi=150)

And this is how the simple line plot looks like.

Line plot with Matplotlib plot() function
Line plot with Matplotlib plot() function

2. Histogram with Matplotlib’s hist() function

The second plot type we will make using. Matplotlib is. histogram with Matplotlib’s hist() function. A. simple histogram is useful for visualizing the distribution of a single variable.

We generate random. numbers from normal distribution using Numpy’s random number generator class.

rng = np.random.default_rng(42)
X = rng.normal(0, 1,100)

Now we can make a histogram. using the data as argument to hist() function in Matplotlib.

# make a histogram. with matplotlib
plt.hist(X)
# set x and y axis labels
plt.xlabel("X", size=16)
plt.ylabel("Count", size=16)
plt.title("Matplotlib hist() example", size=20)
plt.savefig("histogram_with_Matplotlib_hist.png",
                    format='png',dpi=150)

And this is how the histogram of our data looks like.

Histogram with Matplotlib's hist() function
Histogram with Matplotlib’s hist() function


3. Scatter plot with Matplotlib’s scatter() function

We can make scatter plot between two numerical variables using scatter(). function in Matplotlib. In the example below, we generate random numbers from uniform distribution and create X and Y variables for making a scatter plot.

rng = np.random.default_rng()
X = rng.uniform(0,1,100)
Y = rng.uniform(0,1,100)

Matplotlib’s scatter() function takes the two variables as arguments and make a scatter plot.

plt.scatter(X,Y)
plt.xlabel("X", size=16)
plt.ylabel("Y", size=16)
plt.title("Matplotlib scatter()", size=20)
plt.savefig("scatterplot_with_Matplotlib_scatter.png",
                    format='png',dpi=150)

By default Matplotlib makes scatter plot with blue dots as shown below.

Scatter plot with Matplotlib scatter() function
Scatter plot with Matplotlib scatter() function


4. Bar plot with Matplotlib’s bar() function

We can make a barplot using Matplotlib’s bar() function. To make a barplot, we generate sequence of numbers for x-axis and random number from uniform distribution for y-axis.

rng = np.random.default_rng(42)
X = np.arange(1,11)
Y = rng.uniform(1,10,10)

Matplotlib’s bar() function takes the X and Y variables we created as arguments to make a barplot.

plt.bar(X,Y)
plt.xlabel("X", size=16)
plt.ylabel("Count", size=16)
plt.title("Matplotlib bar()", size=20)
plt.savefig("barplot_with_Matplotlib_bar.png",
                    format='png',dpi=150)
Barplot with Matplotlib's plot() function
Barplot with Matplotlib’s plot() function

5. Boxplot with Matplotlib’s boxplot() function

Matplotlib’s boxplot() is useful in quickly making a rudimentary boxplots. Matplotlib’s boxplot() takes in Numpy array or a sequence of vectors as input to make boxplots.
In the example below, we create a numpy array with 3 variables or columns using Numpy’s Random number generator class.

rng = np.random.default_rng(42)
fig,ax=plt.subplots()
X = rng.normal((3,10,5),(1,2,3),(100,3))

Using the Numpy 2-d array as input to boxplot() function we make the boxplot.

plt.boxplot(X)
plt.xlabel("Group", size=16)
plt.title("Matplotlib boxplot()", size=20)
plt.savefig("boxplot_with_Matplotlib_boxplot.png",
                    format='png',dpi=150)<ins datetime="2023-01-14T08:40:23+00:00">
Boxplot with Matplotlib boxplot() function
Boxplot with Matplotlib boxplot() function

6. Violinplot with Matplotlib’s violinplot() function

Violinplot a variant of boxplot is often more suitable than a boxplot. With violinplot() function in Matplotlib, we can make violin plot.

rng = np.random.default_rng(42)
X = rng.normal((3,10,6),(1,2,3),(100,3))
X[0:5,]

We use 2d numpy array with 3 groups or columns to make the violin plot.

array([[ 3.30471708,  7.92003179,  8.25135359],
       [ 3.94056472,  6.09792962,  2.09346148],
       [ 3.1278404 ,  9.36751482,  5.94959653],
       [ 2.14695607, 11.75879595,  8.33337581],
       [ 3.0660307 , 12.25448241,  7.40252803]])

In the example below, we make a violin plot showing the median value for each group.

plt.violinplot(X, showmedians=True)
plt.xlabel("Group", size=16)
plt.title("Matplotlib Violinplot()", size=20)
plt.savefig("violinplot_with_Matplotlib_violinplot.png",
                    format='png',dpi=150)
Violinplot() with Matplotlib violinplot()
Violinplot() with Matplotlib violinplot()

7. Heatmap with Matplotlib’s imshow() function

We can make a simple heatmap showing the values of a 2d array as colors using Matplotlib’s imshow() function.

First we create a 2d Numpy array using random numbers from uniform distribution. And then provide the 2d array as argument to imshow() function to make a heatmap.

rng = np.random.default_rng(42)
X = rng.uniform(0,1,(6,6))
plt.imshow(X)
# set x and y axis labels
plt.xlabel("X", size=16)
plt.ylabel("Y", size=16)
plt.title("Matplotlib imshow() Example", size=20)         
plt.savefig("Heatmap_with_Matplotlib_imshow.png",
                    format='png',dpi=150)
Heatmap with Matplotlib imshow() function
Heatmap with Matplotlib imshow() function

8. 2-dimensional histogram with Matplotlib’s hist2d() function

Two dimensional histograms can be useful when you want to understand the relationship between two quantitative variables in large numbers.

With Matplotlib’s hist2d() function we can make 2d histograms, where each pixel is colored based on the counts of the two variables

plt.style.use('fivethirtyeight')
# make data: correlated + noise
rng=np.random.default_rng()
X = rng.normal(0, 1, 10000)
Y = 1.1 * X + rng.normal(0,1,10000)/2 
plt.hist2d(X, Y, bins=100, cmap='Reds')
plt.xlabel("X", size=14)
plt.ylabel("Y", size=14)
plt.title("Matplotlib hist2d()", size=18)
plt.tight_layout()
plt.savefig("twoD_histogram_with_Matplotlib_hist2d.png",
                    format='png',dpi=150)

2D Histogram with Matplotlib's hist2d() function
2D Histogram with Matplotlib’s hist2d() function

Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X

Related posts:

How to Change Matplotlib Plot Style to Colorblind friendly?How to Change Matplotlib Plot’s Style Plot with two different y-axis with twinx in PythonHow to Make a Plot with Two Different Y-axis in Python with Matplotlib ? How To Highlight Data Annotate with Text Python?How to Highlight Data Points with Colors and Text in Python Default ThumbnailGenerate Random Integers using Generators in Numpy

Filed Under: Python, Python Tips Tagged With: Matplotlib plotting functions

Primary Sidebar

Subscribe to Python and R Tips and Learn Data Science

Learn Pandas in Python and Tidyverse in R

Tags

Altair Basic NumPy Book Review Data Science Data Science Books Data Science Resources Data Science Roundup Data Visualization Dimensionality Reduction Dropbox Dropbox Free Space Dropbox Tips Emacs Emacs Tips ggplot2 Linux Commands Linux Tips Mac Os X Tips Maximum Likelihood Estimation in R MLE in R NumPy Pandas Pandas 101 Pandas Dataframe Pandas Data Frame pandas groupby() Pandas select columns Pandas select_dtypes Python Python 3 Python Boxplot Python Tips R rstats R Tips Seaborn Seaborn Boxplot Seaborn Catplot Shell Scripting Sparse Matrix in Python tidy evaluation tidyverse tidyverse 101 Vim Vim Tips

RSS RSS

  • How to convert row names to a column in Pandas
  • How to resize an image with PyTorch
  • Fashion-MNIST data from PyTorch
  • Pandas case_when() with multiple examples
  • An Introduction to Statistical Learning: with Applications in Python Is Here
  • 10 Tips to customize ggplot2 title text
  • 8 Plot types with Matplotlib in Python
  • PCA on S&P 500 Stock Return Data
  • Linear Regression with Matrix Decomposition Methods
  • Numpy’s random choice() function

Copyright © 2025 · Lifestyle Pro on Genesis Framework · WordPress · Log in

Go to mobile version