Automate matplotlib for Scatter Plots

A Simple Python Example: Real-Time Scatter Plot with Linear Regression

A Simple Python Example: Real-Time Scatter Plot with Linear Regression

Are you a beginner in Python and interested in data visualization and simple machine learning models? Then this post is for you! We will use Python to create a real-time scatter plot, and implement a linear regression model that updates in real-time using scikit-learn.

Prerequisites

  • Python installed
  • Matplotlib library installed
  • NumPy library installed
  • scikit-learn library installed

Code Overview

The code does the following:

  1. Imports necessary libraries
  2. Initializes an empty list for x and y values
  3. Sets up the plot
  4. Runs a loop to generate random points and update the plot
  5. Performs linear regression on the points every 20 iterations

Let's Dive into the Code

Step 1: Importing Libraries

import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression
import random

Step 2: Initialize Lists and the Linear Regression Model

reg = LinearRegression()
x_values = []
y_values = []

Step 3: Set up the Plot

plt.xlim(0, 100)
plt.ylim(0, 100)

Step 4: The Main Loop

for i in range(1000):
    plt.clf()
    x_values.append(random.randint(0, 100))
    y_values.append(random.randint(0, 100))

    x = np.array(x_values)
    x = x.reshape(-1,1)

    y = np.array(y_values)
    y = y.reshape(-1,1)

Step 5: Perform Linear Regression

    if i % 20 == 0:
        reg.fit(x, y)
        plt.xlim(0,100)
        plt.ylim(0,100)
        plt.scatter(x_values, y_values, color='black')
        plt.plot(list(range(100)), reg.predict(np.array([x for x in range(100)]).reshape(-1,1)))
        plt.pause(0.001)

plt.show()

Understanding the Code

The loop runs 1000 times, each time generating a random point and adding it to our lists of x and y values. These points are then plotted as a scatter plot. Every 20 iterations, the code performs linear regression on the accumulated points and updates the regression line on the plot.

Conclusion

This example provides an introduction to real-time data visualization and machine learning using Python. With just a few lines of code, we were able to generate a dynamic scatter plot and a linear regression model that updates in real-time.

This post is made possible by: NeuralNine

Comments

Popular posts from this blog

Blog Topics

Drawing Tables with ReportLab: A Comprehensive Example

DataFrame groupby agg style bar