Matplotlib: Using plot() and scatter()

Table of Contents

Introduction

Matplotlib is a powerful library in Python for creating visualizations. Two commonly used functions for plotting are:

1. Setting Up Matplotlib

Before we start, ensure you have Matplotlib installed. You can install it with:

pip install matplotlib

Import Matplotlib in your Python script:

import matplotlib.pyplot as plt

2. plot() Function

The plot() function is used for creating line plots. A line plot connects data points with lines, making it ideal for visualizing trends.

Syntax:

plt.plot(x, y, format, **kwargs)

Example:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y, 'g--', linewidth=2, label='y = 2x')
plt.title("Line Plot Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.grid(True)
plt.show()

3. scatter() Function

The scatter() function creates scatter plots by plotting individual points. It's useful for visualizing distributions or relationships.

Syntax:

plt.scatter(x, y, c=None, s=None, **kwargs)

Example:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.scatter(x, y, c='blue', s=100, label='Data Points')
plt.title("Scatter Plot Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.grid(True)
plt.show()

4. Combining plot() and scatter()

You can combine line plots and scatter plots for better visualization:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y, 'r--', linewidth=2, label='Line')
plt.scatter(x, y, c='blue', s=100, label='Points')
plt.title("Combined Plot Example")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.legend()
plt.grid(True)
plt.show()

5. Practice Exercise

Try these exercises:

  1. Create a line plot for y = x^2 using the plot() function.
  2. Create a scatter plot for x = [1, 2, 3, 4, 5] and y = [5, 3, 6, 2, 8].
  3. Combine the above into a single plot with a line and scatter points.

Summary

Use plot() for line plots and scatter() for scatter plots. Customize your plots with labels, legends, grid lines, and styling options. Combine both functions for enhanced visualizations.

Understanding format and kwargs in Matplotlib

In Matplotlib, the format string and keyword arguments (kwargs) allow you to customize the appearance and behavior of plots.

1. plot() Function

The plot() function is used for line plots. The format string and kwargs provide options for styling the lines and markers.

Format String

The format string specifies:

  • Color: The color of the line (e.g., 'r' for red, 'b' for blue).
  • Marker: The shape of data point markers (e.g., 'o' for circles, 's' for squares).
  • Line Style: The style of the line (e.g., '--' for dashed, '-' for solid).
# Example:
        import matplotlib.pyplot as plt
        x = [1, 2, 3, 4]
        y = [2, 4, 6, 8]
        plt.plot(x, y, 'r--o')  # Red dashed line with circular markers
        plt.show()

Keyword Arguments (kwargs)

Commonly used kwargs include:

  • linewidth: Sets the line width.
  • label: Adds a label for the legend.
  • color: Specifies the line color.
  • marker: Defines the marker style.
# Example:
        plt.plot(x, y, color='blue', linewidth=2, marker='^', label='Line A')
        plt.legend()
        plt.show()

2. scatter() Function

The scatter() function creates scatter plots. kwargs are used for customizing the appearance of data points.

Common kwargs for scatter()

  • c: Specifies the color of the points.
  • s: Sets the size of the markers.
  • alpha: Adjusts the transparency.
  • label: Adds a label for the legend.
  • marker: Defines the marker shape.
# Example:
        plt.scatter(x, y, c='blue', s=100, alpha=0.5, label='Data Points')
        plt.legend()
        plt.show()

3. Combining plot() and scatter()

You can combine both functions for enhanced visualizations:

# Example:
        plt.plot(x, y, 'g--', linewidth=2, label='Trend Line')  # Line plot
        plt.scatter(x, y, c='red', s=100, label='Points')  # Scatter plot
        plt.title("Combined Plot Example")
        plt.xlabel("X-axis")
        plt.ylabel("Y-axis")
        plt.legend()
        plt.grid(True)
        plt.show()

By mastering the format string and kwargs, you can create customized and visually appealing plots.