"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?

How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?

Published on 2024-11-14
Browse:476

How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?

Plotting a Line in Varying Colors

Problem Statement

Given two lists, latt and lont, the goal is to plot a single line where each segment of 10 consecutive points is represented in a different color.

Solution

Limited Number of Line Segments

If the number of line segments is small, such as 10 or less, a simple approach is to use a loop to plot each segment with a unique color.

import numpy as np
import matplotlib.pyplot as plt

# Generate random colors
def uniqueish_color():
    return plt.cm.gist_ncar(np.random.random())

# Plot the line segments
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)
fig, ax = plt.subplots()
for start, stop in zip(xy[:-1], xy[1:]):
    x, y = zip(start, stop)
    ax.plot(x, y, color=uniqueish_color())
plt.show()

Large Number of Line Segments

For a large number of line segments, using a loop can be slow. Instead, create a LineCollection object.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

# Generate the line segments
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])

# Create a LineCollection object
fig, ax = plt.subplots()
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)

# Set the color array
coll.set_array(np.random.random(xy.shape[0]))

# Add the LineCollection to the axes
ax.add_collection(coll)
ax.autoscale_view()

# Display the plot
plt.show()

Selecting Colors

For both approaches, we use the "gist_ncar" colormap to generate unique colors. Refer to this page for other colormap options: http://matplotlib.org/examples/color/colormaps_reference.html

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3