Home > Backend Development > Python Tutorial > 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?

Linda Hamilton
Release: 2024-10-31 01:53:02
Original
485 people have browsed it

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.

<code class="python">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()</code>
Copy after login

Large Number of Line Segments

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

<code class="python">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()</code>
Copy after login

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

The above is the detailed content of How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template