给定两个列表,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中文网其他相关文章!