Python Matplotlib And Seaborn

Matplotlib and Seaborn are two of the most widely used Python libraries for data visualization. While Matplotlib provides a foundation for creating static, interactive, and animated plots, Seaborn builds on Matplotlib to offer a higher-level interface for making attractive and informative statistical graphics. In this tutorial, we will cover the basics of both libraries and demonstrate how to use them for creating various types of plots and visualizations.

1. Installing Matplotlib and Seaborn

If you haven’t installed Matplotlib or Seaborn yet, you can do so using pip, the Python package manager. Run the following commands:

pip install matplotlib
pip install seaborn

Try It Now

2. Importing Matplotlib and Seaborn

Once installed, you can import the libraries into your Python script. It is common to import Matplotlib as plt and Seaborn as sns:

import matplotlib.pyplot as plt
import seaborn as sns

Try It Now

3. Creating Basic Plots with Matplotlib

Matplotlib provides a variety of functions for creating different types of plots. Let’s start with some basic plots:

3.1 Line Plot

A line plot is useful for visualizing trends over time or other continuous variables:

import numpy as np

# Data
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Plotting
plt.plot(x, y)
plt.title('Line Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

Try It Now

3.2 Scatter Plot

A scatter plot is useful for visualizing the relationship between two variables:

# Data
x = np.random.rand(50)
y = np.random.rand(50)

# Plotting
plt.scatter(x, y)
plt.title('Scatter Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

Try It Now

3.3 Bar Plot

Bar plots are useful for comparing the values of different categories:

# Data
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 2, 5]

# Plotting
plt.bar(categories, values)
plt.title('Bar Plot')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()

Try It Now

3.4 Histogram

Histograms are used to visualize the distribution of a dataset:

# Data
data = np.random.randn(1000)

# Plotting
plt.hist(data, bins=30)
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()

Try It Now

4. Customizing Plots with Matplotlib

Matplotlib allows you to customize your plots in a variety of ways. Here are some common customizations:

4.1 Adding Gridlines

plt.plot(x, y)
plt.grid(True)
plt.show()

Try It Now

4.2 Adding Legends

plt.plot(x, y, label='Sine Wave')
plt.legend()
plt.show()

Try It Now

4.3 Changing Colors and Styles

plt.plot(x, y, color='red', linestyle='--')
plt.show()

Try It Now

5. Creating Plots with Seaborn

Seaborn provides a high-level interface to Matplotlib and makes it easier to create aesthetically pleasing statistical graphics. It also integrates better with pandas DataFrames. Let’s explore some of the most common Seaborn plots:

5.1 Seaborn Line Plot

Seaborn provides a more straightforward way to create line plots with better aesthetics:

# Data
data = sns.load_dataset('tips')

# Line plot
sns.lineplot(x='total_bill', y='tip', data=data)
plt.title('Seaborn Line Plot')
plt.show()

Try It Now

5.2 Seaborn Scatter Plot

Seaborn can create scatter plots with more features, like automatic color encoding for categorical variables:

sns.scatterplot(x='total_bill', y='tip', data=data, hue='sex')
plt.title('Seaborn Scatter Plot')
plt.show()

Try It Now

5.3 Seaborn Bar Plot

Seaborn also makes bar plots more accessible and visually appealing:

sns.barplot(x='sex', y='total_bill', data=data)
plt.title('Seaborn Bar Plot')
plt.show()

Try It Now

5.4 Seaborn Heatmap

Heatmaps are useful for visualizing correlation matrices or other data with two variables:

# Correlation matrix
correlation = data.corr()

# Heatmap
sns.heatmap(correlation, annot=True, cmap='coolwarm')
plt.title('Seaborn Heatmap')
plt.show()

Try It Now

6. Seaborn Pair Plot

Seaborn also provides a pair plot that visualizes relationships between all numeric variables in a dataset:

sns.pairplot(data)
plt.show()

Try It Now

7. Customizing Seaborn Plots

Just like Matplotlib, Seaborn plots can be customized. Here are a few examples:

7.1 Adding Titles and Labels

sns.scatterplot(x='total_bill', y='tip', data=data)
plt.title('Customized Seaborn Plot')
plt.xlabel('Total Bill')
plt.ylabel('Tip')
plt.show()

Try It Now

7.2 Changing Color Palettes

sns.set_palette('husl')
sns.scatterplot(x='total_bill', y='tip', data=data)
plt.show()

Try It Now

Conclusion

In this tutorial, we introduced you to the basics of data visualization in Python using Matplotlib and Seaborn. While Matplotlib provides a lot of control over plot creation, Seaborn simplifies the process of creating complex statistical plots. Together, these libraries are essential tools for anyone working with data in Python, especially in fields like data analysis, data science, and machine learning.