Skip to main content
Crowdfunding
Python + AI for Geeks
Practice

Differences Between Seaborn and Matplotlib and Using Them Together

In Python, when visualizing data, Matplotlib and Seaborn are commonly used libraries.

These two libraries have their distinct characteristics, and when used together, they offer even more powerful visualization capabilities.

In this lesson, we will explore the differences between Matplotlib and Seaborn and demonstrate how to use Seaborn alongside Matplotlib.


1. Differences Between Seaborn and Matplotlib

Matplotlib excels in creating basic graphs and allows detailed customization, while Seaborn is advantageous for high-level, sophisticated visualizations based on data frames, provided by simple code.

FeaturesMatplotlibSeaborn
PurposeBasic graph creationAdvanced data visualization
UsageRequires low-level manipulationEasily used with data frames
StylingBasic default stylesAutomatically applies refined styles
Default Data StructurePrimarily uses arrays (list, numpy)Naturally integrates with pandas.DataFrame
Advanced FeaturesOffers extensive customization but can be complexProvides useful features like pairplot, heatmap for data analysis

2. Using Only Matplotlib

When using Matplotlib alone, you need to manually configure the graph style.

Basic Plot with Matplotlib
import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Plotting
plt.figure(figsize=(8, 4))
plt.plot(x, y, color='blue', linestyle='--', linewidth=2)
plt.title("Graph Using Matplotlib")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.grid(True)

# Display the plot
plt.show()

Running this code allows you to create a basic line plot using plt.plot().

However, since you need to set parameters like color, linestyle, linewidth, and grid, the code can become somewhat lengthy.


3. Simplifying Visualization Using Seaborn

With Seaborn, you can effortlessly generate visually appealing graphs without explicit style settings.

Graph Using Seaborn
import seaborn as sns
import matplotlib.pyplot as plt

# Load sample data
tips = sns.load_dataset("tips")

# Bar plot representing average expenditure by day
sns.barplot(x="day", y="total_bill", data=tips)

# Display the plot
plt.show()

In this code, sns.barplot() is used to create a bar graph that shows the average expenditure by day from the tips dataset.

Unlike Matplotlib, you can generate a neatly styled plot without setting detailed style parameters.


4. Using Seaborn and Matplotlib Together

You can use Seaborn to create the basic graph and Matplotlib to add further customization.

Using Seaborn and Matplotlib Together
import seaborn as sns
import matplotlib.pyplot as plt

# Load data
tips = sns.load_dataset("tips")

# Create graph using Seaborn
sns.boxplot(x="day", y="total_bill", data=tips)

# Add additional settings using Matplotlib
plt.title("Distribution of Total Bill by Day")
plt.xlabel("Day")
plt.ylabel("Total Bill ($)")
plt.grid(True)

# Display the plot
plt.show()

This code uses Seaborn’s boxplot() to visualize the distribution of total bills by day, and Matplotlib to add a title, axis labels, and grid.

By creating a graph with Seaborn and enhancing it with Matplotlib’s settings, you can perform data visualization more effectively.


References

Want to learn more?

Join CodeFriends Plus membership or enroll in a course to start your journey.