給定兩個列表,latt 和lont,目標是繪製一條線,其中每個列表10個連續點的線段以不同的顏色表示。
線段數量有限
如果線段數量很少,例如10 個或更少,一個簡單的方法是使用循環以唯一的顏色繪製每個線段。
<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>
大量線段
對於大量線段,使用循環可能會很慢。相反,建立一個 LineCollection 物件。
<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>
對於這兩種方法,我們使用「gist_ncar」顏色圖來產生唯一的顏色。有關其他顏色圖選項,請參閱此頁面:http://matplotlib.org/examples/color/colormaps_reference.html
以上是如何為 10 個連續點的每段繪製不同顏色的線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!