首頁  >  文章  >  後端開發  >  如何使用 Matplotlib 繪製不同顏色的線?

如何使用 Matplotlib 繪製不同顏色的線?

Linda Hamilton
Linda Hamilton原創
2024-10-31 06:51:30417瀏覽

How to Plot a Line with Varying Colors Using Matplotlib?

用不同顏色繪製一條線

問題

給定兩個數據點列表,latt 和lont,目標是將數據可視化為一條具有不同顏色的線。此線應分為多個週期,每個週期包含兩個清單中的 10 個資料點。每個週期應該分配不同的顏色。

方法一:限制線段數量

少量線段,可以使用下列方法:

<code class="python">import numpy as np
import matplotlib.pyplot as plt

def uniqueish_color():
    """Generate a unique-looking color."""
    return plt.cm.gist_ncar(np.random.random())

# Generate random data
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)

# Create a figure and axis
fig, ax = plt.subplots()

# Iterate over segments
for start, stop in zip(xy[:-1], xy[1:]):
    x, y = zip(start, stop)
    ax.plot(x, y, color=uniqueish_color())

# Display the plot
plt.show()</code>

對於少量線段,可以使用下列方法:

方法二:大量線段

<code class="python">import numpy as np
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection

# Generate random data
xy = (np.random.random((1000, 2)) - 0.5).cumsum(axis=0)

# Reshape data
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])

# Create a figure and axis
fig, ax = plt.subplots()

# Create a LineCollection
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)

# Set colors
coll.set_array(np.random.random(xy.shape[0]))

# Add collection to axis
ax.add_collection(coll)

# Adjust view
ax.autoscale_view()

# Display the plot
plt.show()</code>
對於大量線段,可以使用LineCollection提高性能:

以上是如何使用 Matplotlib 繪製不同顏色的線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn