Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Memplot Garisan dengan Pelbagai Warna dalam Matplotlib?

Bagaimana untuk Memplot Garisan dengan Pelbagai Warna dalam Matplotlib?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 08:58:02886semak imbas

How to Plot Lines with Varying Colors in Matplotlib?

Memplot Garisan dengan Pelbagai Warna

Dalam matplotlib, memplot garisan dengan segmen warna yang berbeza boleh dicapai melalui beberapa pendekatan. Pilihan bergantung pada bilangan segmen garisan yang akan diplotkan.

Bilangan Kecil Segmen Garisan

Jika hanya beberapa segmen garisan diperlukan, seperti dalam memplot trajektori, pertimbangkan perkara berikut:

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

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

fig, ax = plt.subplots()

# Plot each line segment with a unique color
for start, stop in zip(xy[:-1], xy[1:]):
    x, y = zip(start, stop)
    ax.plot(x, y, color=plt.cm.gist_ncar(np.random.random()))

plt.show()</code>

Bilangan Besar Segmen Baris

Apabila mengendalikan sejumlah besar segmen baris, kaedah yang lebih cekap ialah menggunakan LineCollection.

<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 for compatibility with LineCollection
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])

fig, ax = plt.subplots()

# Create a LineCollection with randomly assigned colors
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)
coll.set_array(np.random.random(xy.shape[0]))

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

plt.show()</code>

Dalam kedua-dua kaedah, peta warna yang dipilih boleh ditukar dengan merujuk kepada dokumentasi Matplotlib.

Atas ialah kandungan terperinci Bagaimana untuk Memplot Garisan dengan Pelbagai Warna dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn