Open In App

Data Visualization using Matplotlib in Python

Last Updated : 26 Aug, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Save
Share
Report
News Follow

Data visualization is a crucial aspect of data analysis, enabling data scientists and analysts to present complex data in a more understandable and insightful manner. One of the most popular libraries for data visualization in Python is Matplotlib. In this article, we will provide a comprehensive guide to using Matplotlib for creating various types of plots and customizing them to fit specific needs and how to visualize data with the help of the Matplotlib library of Python.

Data-Visualization-with-Matplotlib

Data Visualization using Matplotlib

Getting Started with Matplotlib

Matplotlib is a versatile and widely-used data visualization library in Python. It allows users to create static, interactive, and animated visualizations.

The library is built on top of NumPy, making it efficient for handling large datasets. This library is built on the top of NumPy arrays and consist of several plots like line chart, bar chart, histogram, etc. It provides a lot of flexibility but at the cost of writing more code.

Installing Matplotlib for Data Visualization

We will use the pip command to install this module. If you do not have pip installed then refer to the article, Download and install pip Latest Version.

To install Matplotlib type the below command in the terminal.

pip install matplotlib

install matplotlib

We can also install matplotlib in Jupyter Notebook and Google colab environment by using the same command:

installpyplot

Installing Matplotlib for Data Visualization

If you are using Jupyter Notebook, you can install it within a notebook cell by using:

!pip install matplotlib

Data Visualization With Pyplot in Matplotlib

Matplotlib provides a module called pyplot, which offers a MATLAB-like interface for creating plots and charts. It simplifies the process of generating various types of visualizations by offering a collection of functions that handle common plotting tasks. Each function in Pyplot modifies a figure in a specific way, such as:

Key Pyplot Functions:

CategoryFunctionDescription
Plot Creationplot()Creates line plots with customizable styles.
scatter()Generates scatter plots to visualize relationships.
Graphical Elementsbar()Creates bar charts for comparing categories.
hist()Draws histograms to show data distribution.
pie()Creates pie charts to represent parts of a whole.
Customizationxlabel(), ylabel()Sets labels for the X and Y axes.
title()Adds a title to the plot.
legend()Adds a legend to differentiate data series.
Visualization Controlxlim(), ylim()Sets limits for the X and Y axes.
grid()Adds gridlines to the plot for readability.
show()Displays the plot in a window.
Figure Managementfigure()Creates or activates a figure.
subplot()Creates a grid of subplots within a figure.
savefig()Saves the current figure to a file.

Basic Plotting with Matplotlib : Step-by-Step Examples

Matplotlib supports a variety of plots including line charts, bar charts, histograms, scatter plots, etc. We will discuss the most commonly used charts in this article with the help of some good examples and will also see how to customize each plot.  

1. Line Chart

Line chart is one of the basic plots and can be created using the plot() function. It is used to represent a relationship between two data X and Y on a different axis.

Syntax:

matplotlib.pyplot.plot(\*args, scalex=True, scaley=True, data=None, \*\*kwargs)

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Line Chart")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

plt.show()

Output:

line chart matplotlib

2. Bar Chart

A bar chart is a graph that represents the category of data with rectangular bars with lengths and heights that is proportional to the values which they represent. The bar plots can be plotted horizontally or vertically. A bar chart describes the comparisons between the discrete categories. It can be created using the bar() method.

In the below example, we will use the tips dataset. Tips database is the record of the tip given by the customers in a restaurant for two and a half months in the early 1990s. It contains 6 columns as total_bill, tip, sex, smoker, day, time, size.

Example: 

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['day']
y = data['total_bill']

# plotting the data
plt.bar(x, y)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Total Bill')

# Adding label on the x-axis
plt.xlabel('Day')

plt.show()

Output:

bar chat matplotlib

3. Histogram

A histogram is basically used to represent data provided in a form of some groups. It is a type of bar plot where the X-axis represents the bin ranges while the Y-axis gives information about frequency. The hist() function is used to compute and create histogram of x.

Syntax:

matplotlib.pyplot.hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype=’bar’, align=’mid’, orientation=’vertical’, rwidth=None, log=False, color=None, label=None, stacked=False, \*, data=None, \*\*kwargs)

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['total_bill']

# plotting the data
plt.hist(x)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Frequency')

# Adding label on the x-axis
plt.xlabel('Total Bill')

plt.show()

Output:

hostogram  matplotlib

4. Scatter Plot

Scatter plots are used to observe relationships between variables. The scatter() method in the matplotlib library is used to draw a scatter plot.

Syntax:

matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['day']
y = data['total_bill']

# plotting the data
plt.scatter(x, y)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Total Bill')

# Adding label on the x-axis
plt.xlabel('Day')

plt.show()

Output:

scatter plot matplotplib

5. Pie Chart

Pie chart is a circular chart used to display only one series of data. The area of slices of the pie represents the percentage of the parts of the data. The slices of pie are called wedges. It can be created using the pie() method.

Syntax:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
cars = ['AUDI', 'BMW', 'FORD',
        'TESLA', 'JAGUAR',]
data = [23, 10, 35, 15, 12]

# plotting the data
plt.pie(data, labels=cars)

# Adding title to the plot
plt.title("Car data")

plt.show()

Output:

pie chart matplotlib

6. Box Plot

A Box Plot, also known as a Whisker Plot, is a standardized way of displaying the distribution of data based on a five-number summary: minimum, first quartile (Q1), median (Q2), third quartile (Q3), and maximum. It can also show outliers.

Let’s see an example of how to create a Box Plot using Matplotlib in Python:

Python
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(10)
data = [np.random.normal(0, std, 100) for std in range(1, 4)]

# Create a box plot
plt.boxplot(data, vert=True, patch_artist=True, 
            boxprops=dict(facecolor='skyblue'),
            medianprops=dict(color='red'))

plt.xlabel('Data Set')
plt.ylabel('Values')
plt.title('Example of Box Plot')
plt.show()

Output:

boxplot

Box Plot in Python using Matplotlib

Explanation:

  • plt.boxplot(data): Creates the box plot. The vert=True argument makes the plot vertical, and patch_artist=True fills the box with color.
  • boxprops and medianprops: Customize the appearance of the boxes and median lines, respectively.

The box shows the interquartile range (IQR), the line inside the box shows the median, and the “whiskers” extend to the minimum and maximum values within 1.5 * IQR from the first and third quartiles. Any points outside this range are considered outliers and are plotted as individual points.

7. Heatmap

A Heatmap is a data visualization technique that represents data in a matrix form, where individual values are represented as colors. Heatmaps are particularly useful for visualizing the magnitude of data across a two-dimensional surface and identifying patterns, correlations, and concentrations.

Let’s see an example of how to create a Heatmap using Matplotlib in Python:

Python
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
data = np.random.rand(10, 10)

# Create a heatmap
plt.imshow(data, cmap='viridis', interpolation='nearest')
# Add a color bar to show the scale
plt.colorbar()

plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Example of Heatmap')

plt.show()

Output:

heatmap

Heatmap with matplotlib

Explanation:

  • plt.imshow(data, cmap='viridis'): Displays the data as an image (heatmap). The cmap='viridis' argument specifies the color map used for the heatmap.
  • interpolation='nearest': Ensures that each data point is shown as a block of color without smoothing.

The color bar on the side provides a scale to interpret the colors, with darker colors representing lower values and lighter colors representing higher values. This type of plot is often used in fields like data analysis, bioinformatics, and finance to visualize data correlations and distributions across a matrix.

A Guide to Matplotlib Customization and Styling

Matplotlib allows extensive customization of plots, including changing colors, adding labels, and modifying plot styles.

1. Adding a Title

The title() method in matplotlib module is used to specify the title of the visualization depicted and displays the title using various attributes.

Syntax:

matplotlib.pyplot.title(label, fontdict=None, loc=’center’, pad=None, **kwargs)

Example:

Python
import matplotlib.pyplot as plt

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Linear graph")

plt.show()

Output:

add title to plot matplotlib

We can also change the appearance of the title by using the parameters of this function.

Example:

Python
import matplotlib.pyplot as plt

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Linear graph", fontsize=25, color="green")

plt.show()

Output:

title to the plot matplotlib

2. Adding X Label and Y Label

In layman’s terms, the X label and the Y label are the titles given to X-axis and Y-axis respectively. These can be added to the graph by using the xlabel() and ylabel() methods.

Syntax:

matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, **kwargs)

matplotlib.pyplot.ylabel(ylabel, fontdict=None, labelpad=None, **kwargs)

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Linear graph", fontsize=25, color="green")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

plt.show()

Output:

adding labels to plot matplotlib

3. Setting Limits and Tick labels

You might have seen that Matplotlib automatically sets the values and the markers(points) of the X and Y axis, however, it is possible to set the limit and markers manually.

  • xlim() and ylim() functions are used to set the limits of the X-axis and Y-axis respectively.
  • Similarly, xticks() and yticks() functions are used to set tick labels.

Example: In this example, we will be changing the limit of Y-axis and will be setting the labels for X-axis.

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Linear graph", fontsize=25, color="green")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

# Setting the limit of y-axis
plt.ylim(0, 80) 

# setting the labels of x-axis
plt.xticks(x, labels=["one", "two", "three", "four"])

plt.show()

Output:

axis limit and tick labels matplotlib

4. Adding Legends

A legend is an area describing the elements of the graph. In simple terms, it reflects the data displayed in the graph’s Y-axis. It generally appears as the box containing a small sample of each color on the graph and a small description of what this data means.

The attribute bbox_to_anchor=(x, y) of legend() function is used to specify the coordinates of the legend, and the attribute ncol represents the number of columns that the legend has. Its default value is 1.

Syntax:

matplotlib.pyplot.legend([“name1”, “name2”], bbox_to_anchor=(x, y), ncol=1)

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y)

# Adding title to the plot
plt.title("Linear graph", fontsize=25, color="green")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

# Setting the limit of y-axis
plt.ylim(0, 80) 

# setting the labels of x-axis
plt.xticks(x, labels=["one", "two", "three", "four"])

# Adding legends
plt.legend(["GFG"])

plt.show()

Output:

ADding Legends to multiple plots matplotlib

Let’s apply the customization techniques we’ve learned to the basic plots we created earlier. This will involve enhancing each plot with titles, axis labels, limits, tick labels, and legends to make them more informative and visually appealing.

-> Customizing Line Chart

Let’s see how to customize the above-created line chart. We will be using the following properties:

  • color: Changing the color of the line
  • linewidth: Customizing the width of the line
  • marker: For changing the style of actual plotted point
  • markersize: For changing the size of the markers
  • linestyle: For defining the style of the plotted line

Different Linestyle available

Character

Definition

Solid line

Dashed line

-.

dash-dot line

Dotted line

.

Point marker

o

Circle marker

,

Pixel marker

v

triangle_down marker

^

triangle_up marker

<

triangle_left marker

>

triangle_right marker

1

tri_down marker

2

tri_up marker

3

tri_left marker

4

tri_right marker

s

square marker

p

pentagon marker

*

star marker

h

hexagon1 marker

H

hexagon2 marker

+

Plus marker

x

X marker

D

Diamond marker

d

thin_diamond marker

|

vline marker

_

hline marker

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# plotting the data
plt.plot(x, y, color='green', linewidth=3, marker='o', 
         markersize=15, linestyle='--')

# Adding title to the plot
plt.title("Line Chart")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

plt.show()

Output:

styled line chart matplotlib

Note: For more information, refer Line plot styles in Matplotlib

-> Customizing Bar Chart

To make bar charts more informative and visually appealing, various customization options are available. Customization that is available for the Bar Chart are:

  • color: For the bar faces
  • edgecolor: Color of edges of the bar
  • linewidth: Width of the bar edges
  • width: Width of the bar

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['day']
y = data['total_bill']

# plotting the data
plt.bar(x, y, color='green', edgecolor='blue', 
        linewidth=2)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Total Bill')

# Adding label on the x-axis
plt.xlabel('Day')

plt.show()

Output:

styled barc chart matplotlib

Note: The lines in between the bars refer to the different values in the Y-axis of the particular value of the X-axis.

-> Customizing Histogram Plot

To make histogram plots more effective and tailored to your data, you can apply various customizations:

  • bins: Number of equal-width bins 
  • color: For changing the face color
  • edgecolor: Color of the edges
  • linestyle: For the edgelines
  • alpha: blending value, between 0 (transparent) and 1 (opaque)

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['total_bill']

# plotting the data
plt.hist(x, bins=25, color='green', edgecolor='blue',
         linestyle='--', alpha=0.5)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Frequency')

# Adding label on the x-axis
plt.xlabel('Total Bill')

plt.show()

Output:

matplotlib histogram with style

-> Customizing Scatter Plot

Scatter plots are versatile tools for visualizing relationships between two variables. Customizations that are available for the scatter plot are to enhance their clarity and effectiveness:

  • s: marker size (can be scalar or array of size equal to size of x or y)
  • c: color of sequence of colors for markers
  • marker: marker style
  • linewidths: width of marker border
  • edgecolor: marker border color
  • alpha: blending value, between 0 (transparent) and 1 (opaque)
Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
x = data['day']
y = data['total_bill']

# plotting the data
plt.scatter(x, y, c=data['size'], s=data['total_bill'],
            marker='D', alpha=0.5)

# Adding title to the plot
plt.title("Tips Dataset")

# Adding label on the y-axis
plt.ylabel('Total Bill')

# Adding label on the x-axis
plt.xlabel('Day')

plt.show()

Output:

style histogram matplotlib

-> Customizing Pie Chart

Pie charts are a great way to visualize proportions and parts of a whole. To make your pie charts more effective and visually appealing, consider the following customization techniques:

  • explode: Moving the wedges of the plot
  • autopct: Label the wedge with their numerical value.
  • color: Attribute is used to provide color to the wedges.
  • shadow: Used to create shadow of wedge.

Example:

Python
import matplotlib.pyplot as plt
import pandas as pd

# Reading the tips.csv file
data = pd.read_csv('tips.csv')

# initializing the data
cars = ['AUDI', 'BMW', 'FORD',
        'TESLA', 'JAGUAR',]
data = [23, 13, 35, 15, 12]

explode = [0.1, 0.5, 0, 0, 0]

colors = ( "orange", "cyan", "yellow",
          "grey", "green",)

# plotting the data
plt.pie(data, labels=cars, explode=explode, autopct='%1.2f%%',
        colors=colors, shadow=True)

plt.show()

Output:

style pie plot matplotlib

Understanding Matplotlib’s Core Components: Figures and Axes

Before moving any further with Matplotlib let’s discuss some important classes that will be used further in the tutorial. These classes are:

  • Figure
  • Axes

Note: Matplotlib take care of the creation of inbuilt defaults like Figure and Axes.

1. Figure class

Consider the figure class as the overall window or page on which everything is drawn. It is a top-level container that contains one or more axes. A figure can be created using the figure() method.

Syntax:

class matplotlib.figure.Figure(figsize=None, dpi=None, facecolor=None, edgecolor=None, linewidth=0.0, frameon=None, subplotpars=None, tight_layout=None, constrained_layout=None)

Example:

Python
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# Creating a new figure with width = 7 inches
# and height = 5 inches with face color as 
# green, edgecolor as red and the line width
# of the edge as 7
fig = plt.figure(figsize =(7, 5), facecolor='g',
                 edgecolor='b', linewidth=7)

# Creating a new axes for the figure
ax = fig.add_axes([1, 1, 1, 1])

# Adding the data to be plotted
ax.plot(x, y)

# Adding title to the plot
plt.title("Linear graph", fontsize=25, color="yellow")

# Adding label on the y-axis
plt.ylabel('Y-Axis')

# Adding label on the x-axis
plt.xlabel('X-Axis')

# Setting the limit of y-axis
plt.ylim(0, 80) 

# setting the labels of x-axis
plt.xticks(x, labels=["one", "two", "three", "four"])

# Adding legends
plt.legend(["GFG"])

plt.show()

Output:

matplotlib figure class

For more details on the Figure class and its functions, refer to: More Functions in Figure Class

2. Axes Class

Axes class is the most basic and flexible unit for creating sub-plots. A given figure may contain many axes, but a given axes can only be present in one figure. The axes() function creates the axes object. 

Syntax:

axes([left, bottom, width, height])

Just like pyplot class, axes class also provides methods for adding titles, legends, limits, labels, etc. Let’s see a few of them – 

Example:

Python
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

fig = plt.figure(figsize = (5, 4))

# Adding the axes to the figure
ax = fig.add_axes([1, 1, 1, 1])

# plotting 1st dataset to the figure
ax1 = ax.plot(x, y)

# plotting 2nd dataset to the figure
ax2 = ax.plot(y, x)

# Setting Title
ax.set_title("Linear Graph")

# Setting Label
ax.set_xlabel("X-Axis")
ax.set_ylabel("Y-Axis")

# Adding Legend
ax.legend(labels = ('line 1', 'line 2'))

plt.show()

Output:

axes class matplotlib

Advanced Plotting: Techniques for Visualizing Subplots

We have learned about the basic components of a graph that can be added so that it can convey more information. One method can be by calling the plot function again and again with a different set of values as shown in the above example. Now let’s see how to plot multiple graphs using some functions and also how to plot subplots. 

Method 1: Using the add_axes() method 

The add_axes() method is used to add axes to the figure. This is a method of figure class

Syntax:

add_axes(self, *args, **kwargs)

Example:

Python
# Python program to show pyplot module
import matplotlib.pyplot as plt
from matplotlib.figure import Figure

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# Creating a new figure with width = 5 inches
# and height = 4 inches
fig = plt.figure(figsize =(5, 4))

# Creating first axes for the figure
ax1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])

# Creating second axes for the figure
ax2 = fig.add_axes([1, 0.1, 0.8, 0.8])

# Adding the data to be plotted
ax1.plot(x, y)
ax2.plot(y, x)

plt.show()

Output:

add_axes matplotlib

Method 2: Using subplot() method

This method adds another plot at the specified grid position in the current figure.

Syntax:

subplot(nrows, ncols, index, **kwargs)

subplot(pos, **kwargs)

subplot(ax)

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]


# Creating figure object
plt.figure()

# adding first subplot
plt.subplot(121)
plt.plot(x, y)

# adding second subplot
plt.subplot(122)
plt.plot(y, x)

Output:

subplot matplotlib

Method 3: Using subplots() method

This function is used to create figures and multiple subplots at the same time.

Syntax:

matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

Example:

Python
import matplotlib.pyplot as plt


# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# Creating the figure and subplots
# according the argument passed
fig, axes = plt.subplots(1, 2)

# plotting the data in the
# 1st subplot
axes[0].plot(x, y)

# plotting the data in the 1st
# subplot only
axes[0].plot(y, x)

# plotting the data in the 2nd 
# subplot only
axes[1].plot(x, y)

Output:

subplots matplotlib

Method 4: Using subplot2grid() method

This function creates axes object at a specified location inside a grid and also helps in spanning the axes object across multiple rows or columns. In simpler words, this function is used to create multiple charts within the same figure.

Syntax:

Plt.subplot2grid(shape, location, rowspan, colspan)

Example:

Python
import matplotlib.pyplot as plt

# initializing the data
x = [10, 20, 30, 40]
y = [20, 25, 35, 55]

# adding the subplots
axes1 = plt.subplot2grid (
(7, 1), (0, 0), rowspan = 2, colspan = 1)

axes2 = plt.subplot2grid (
(7, 1), (2, 0), rowspan = 2, colspan = 1)

# plotting the data
axes1.plot(x, y)
axes2.plot(y, x)

Output:

subplot2grid matplotlib

Saving the Matplotlib Plots Using savefig()

For saving a plot in a file on storage disk, savefig() method is used. A file can be saved in many formats like .png, .jpg, .pdf, etc.

Syntax:

pyplot.savefig(fname, dpi=None, facecolor=’w’, edgecolor=’w’, orientation=’portrait’, papertype=None, format=None, transparent=False, bbox_inches=None, pad_inches=0.1, frameon=None, metadata=None)

Example:

Python
import matplotlib.pyplot as plt

# Creating data
year = ['2010', '2002', '2004', '2006', '2008']
production = [25, 15, 35, 30, 10]

# Plotting barchart
plt.bar(year, production)

# Saving the figure.
plt.savefig("output.jpg")

# Saving figure by changing parameter values
plt.savefig("output1", facecolor='y', bbox_inches="tight",
            pad_inches=0.3, transparent=True)

Output:

saving matplotlib plotmatplotlib saving plot

Conclusion

In this guide, we have explored the fundamentals of Matplotlib, from installation to advanced plotting techniques. By mastering these concepts, you can create and customize a wide range of visualizations to effectively communicate data insights. Whether you are working with simple line charts or complex heatmaps, Matplotlib provides the tools needed to bring your data to life.

FAQs – Data Visualization using Matplotlib in Python

What is the difference between pyplot and figure in Matplotlib?

pyplot is a module in Matplotlib that provides a MATLAB-like interface for creating plots. It simplifies the plotting process by offering a collection of functions that modify a figure. The figure class, on the other hand, is a container for all plot elements. It serves as the canvas on which plots are drawn and can contain multiple Axes objects for complex visualizations.

Can Matplotlib be used for interactive visualizations?

Yes, Matplotlib supports interactive visualizations through integration with interactive backends and libraries like Jupyter Notebook. It allows for zooming, panning, and updating plots dynamically. While Matplotlib is primarily known for static plots, its interactive capabilities can be enhanced using additional libraries such as mpl_interactions or by embedding plots in web applications using tools like Dash.

What are some advanced customization options available in Matplotlib?

Matplotlib offers extensive customization options, including changing plot styles, colors, and adding annotations. You can customize the appearance of plots using parameters such as colorlinestyle, and linewidth for lines, or edgecolor and facecolor for bars. Additionally, you can add annotations using annotate() to highlight specific data points or trends.

How do I handle large datasets with Matplotlib?

When dealing with large datasets, it’s important to optimize your plots for performance. Matplotlib can efficiently handle large datasets by leveraging NumPy arrays. You can also use techniques like downsampling data, using vectorized operations, and avoiding unnecessary plot elements to improve performance. Additionally, consider using other libraries like Seaborn or Plotly for more complex visualizations

Can I create interactive plots with Matplotlib?

While Matplotlib is primarily used for static plots, it does support some interactivity through its integration with interactive backends and Jupyter Notebook. You can use the %matplotlib notebook magic command in Jupyter to enable interactive features like zooming and panning. For more advanced interactivity, consider using libraries like Plotly or Bokeh that are designed for creating interactive visualizations



Next Article

Similar Reads

three90RightbarBannerImg
  翻译: