How do I find the intersection of two line segments in Matplotlib?

To find the intersection of two line segments in Matplotlib, we calculate where two lines meet using their slopes and intercepts, then draw horizontal and vertical lines through that point.

Mathematical Formula

For two lines with equations y = m1*x + c1 and y = m2*x + c2, the intersection point is:

x_intersection = (c1 - c2) / (m2 - m1) y_intersection = m1 * x_intersection + c1

Example

Here's how to find and visualize the intersection point ?

import matplotlib.pyplot as plt
import numpy as np

# Set figure size
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# Define line parameters: y = mx + c
m1, c1 = 0.1, 2.0   # First line: y = 0.1x + 2.0
m2, c2 = 2.0, -3.0  # Second line: y = 2.0x - 3.0

# Create x data points
x = np.linspace(-10, 10, 500)

# Plot both lines
plt.plot(x, x * m1 + c1, 'red', label='Line 1')
plt.plot(x, x * m2 + c2, 'green', label='Line 2')

# Set axis limits
plt.xlim(-2, 8)
plt.ylim(-2, 8)

# Calculate intersection point
xi = (c1 - c2) / (m2 - m1)
yi = m1 * xi + c1

print(f"Intersection point: ({xi:.2f}, {yi:.2f})")

# Draw vertical and horizontal lines through intersection
plt.axvline(x=xi, color='gray', linestyle='--', alpha=0.7)
plt.axhline(y=yi, color='gray', linestyle='--', alpha=0.7)

# Mark the intersection point
plt.scatter(xi, yi, color='black', s=50, zorder=5)

# Add labels and grid
plt.legend()
plt.grid(True, alpha=0.3)
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Line Intersection with Reference Lines')

plt.show()
Intersection point: (2.63, 2.26)

Step-by-Step Process

The algorithm follows these steps:

  1. Define line equations: Set slopes (m1, m2) and intercepts (c1, c2)
  2. Calculate intersection: Use the formula xi = (c1-c2)/(m2-m1)
  3. Find y-coordinate: Substitute xi into either line equation
  4. Draw reference lines: Add vertical and horizontal lines through the intersection
  5. Mark the point: Use scatter() to highlight the intersection

Key Points

  • Lines must have different slopes (m1 ? m2) to intersect
  • Use axvline() and axhline() for reference lines
  • Set zorder=5 for scatter points to appear on top
  • Add transparency with alpha parameter for cleaner visualization

Conclusion

Finding line intersections in Matplotlib involves basic algebra and visualization functions. The key is calculating the intersection coordinates mathematically, then using axvline() and axhline() to draw reference lines through that point.

Updated on: 2026-03-25T23:22:02+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements