MENU

[AI from Scratch] Episode 217: Data Visualization with Matplotlib — Basics of Graph Creation

TOC

Recap and Today’s Theme

Hello! In the previous episode, we explained how to read and save various data formats using Pandas. By learning efficient data input and output methods, you are now better equipped for data analysis and AI development.

Today, we’ll learn how to visualize data using Matplotlib, a popular Python library for data visualization. With Matplotlib, you can easily create line graphs, bar charts, scatter plots, and more, helping you understand data trends and patterns visually. Let’s explore the basics of using Matplotlib!

What Is Matplotlib?

Matplotlib is a Python library used for data visualization. It is simple and highly flexible, supporting everything from basic plots to advanced customizations. Key features include:

  1. Diverse Graph Types: Supports line graphs, bar charts, scatter plots, histograms, pie charts, and more.
  2. High Customizability: Allows you to fine-tune labels, colors, styles, and layouts.
  3. Integration with Pandas: Easily plots data directly from Pandas DataFrames.

Installing and Setting Up Matplotlib

In an Anaconda environment, Matplotlib is typically installed by default. However, to install it manually, you can use the following command:

pip install matplotlib

Importing Matplotlib

By convention, Matplotlib’s pyplot module is imported with the alias plt.

import matplotlib.pyplot as plt

With this setup, you’re ready to start creating graphs.

Basic Graph Creation with Matplotlib

1. Creating a Line Graph

Line graphs are useful for visualizing changes in numerical values over time. For example, they help identify trends in data that changes over time.

import matplotlib.pyplot as plt

# Preparing data
x = [0, 1, 2, 3, 4, 5]
y = [0, 1, 4, 9, 16, 25]

# Drawing the line graph
plt.plot(x, y)
plt.title("Line Graph")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • plt.plot(): Draws a line graph.
  • plt.title(): Sets the title of the graph.
  • plt.xlabel() / plt.ylabel(): Sets labels for the X and Y axes.
  • plt.show(): Displays the graph.

2. Creating a Bar Chart

Bar charts are useful for comparing values across categories.

# Preparing data
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 6]

# Drawing the bar chart
plt.bar(categories, values)
plt.title("Bar Chart")
plt.xlabel("Categories")
plt.ylabel("Values")
plt.show()
  • plt.bar(): Draws a bar chart, specifying categories and their values.

3. Creating a Scatter Plot

Scatter plots visualize the relationship between two variables.

import numpy as np

# Preparing data
x = np.random.rand(50)
y = np.random.rand(50)

# Drawing the scatter plot
plt.scatter(x, y)
plt.title("Scatter Plot")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • plt.scatter(): Draws a scatter plot using x and y data.

4. Creating a Histogram

Histograms are effective for visualizing the distribution of data.

data = np.random.randn(1000)

# Drawing the histogram
plt.hist(data, bins=30)
plt.title("Histogram")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
  • plt.hist(): Draws a histogram, specifying the data and the number of bins (intervals).

5. Creating a Pie Chart

Pie charts show proportions of a whole.

labels = ['Apples', 'Bananas', 'Cherries', 'Dates']
sizes = [15, 30, 45, 10]

# Drawing the pie chart
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
plt.title("Pie Chart")
plt.show()
  • plt.pie(): Draws a pie chart, with labels specifying the labels and autopct formatting percentage display.

Customizing Matplotlib

1. Changing Graph Styles

Matplotlib offers various styles that can be set using plt.style.use().

plt.style.use('ggplot')  # Sets the style to 'ggplot'

# Drawing a line graph
plt.plot(x, y)
plt.title("Styled Line Graph")
plt.show()

Other styles include seaborn, classic, and more.

2. Customizing Colors and Line Styles

You can also specify the color and line style of graphs.

plt.plot(x, y, color='red', linestyle='--', marker='o')
plt.title("Customized Line Graph")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
  • color: Sets the line color (e.g., ‘red’, ‘blue’).
  • linestyle: Sets the line style (e.g., -- for dashed lines, - for solid lines).
  • marker: Sets the marker style for data points (e.g., 'o' for circles).

3. Displaying Multiple Graphs in One Figure

You can use plt.subplot() to display multiple graphs in a single figure.

# Arranging graphs in 1 row and 2 columns
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("Line Graph")

plt.subplot(1, 2, 2)
plt.bar(categories, values)
plt.title("Bar Chart")

plt.tight_layout()
plt.show()
  • plt.subplot(): Specifies the number of rows, columns, and the index of the plot.
  • plt.tight_layout(): Automatically adjusts the layout to prevent overlap.

Integrating Pandas with Matplotlib

You can directly plot graphs from Pandas DataFrames using Matplotlib.

import pandas as pd

# Creating sample data
data = {
    'Category': ['A', 'B', 'C', 'D'],
    'Values': [10, 20, 15, 5]
}
df = pd.DataFrame(data)

# Plotting a bar chart
df.plot(kind='bar', x='Category', y='Values')
plt.title("Pandas Bar Chart")
plt.show()
  • df.plot(): Plots a graph directly from a DataFrame using Pandas’ method.
  • kind: Specifies the type of graph (bar, line, hist, etc.).

Summary

In this episode, we covered the basics of creating graphs using Matplotlib, including line graphs, bar charts, scatter plots, histograms, and pie charts. Mastering these skills will help you visualize data trends and effectively communicate analysis results.

Next Episode Preview

Next time, we will learn how to create more advanced and aesthetically pleasing graphs using Seaborn, a library that extends Matplotlib’s capabilities. Stay tuned!


Annotations

  • Integration with Pandas: Allows for direct visualization from DataFrames, enhancing efficiency.
  • Style Settings: plt.style.use() easily changes the design of graphs.
Let's share this post !

Author of this article

株式会社PROMPTは生成AIに関する様々な情報を発信しています。
記事にしてほしいテーマや調べてほしいテーマがあればお問合せフォームからご連絡ください。
---
PROMPT Inc. provides a variety of information related to generative AI.
If there is a topic you would like us to write an article about or research, please contact us using the inquiry form.

Comments

To comment

TOC