首页  >  文章  >  后端开发  >  如何使用 Matplotlib 绘制不同颜色的线?

如何使用 Matplotlib 绘制不同颜色的线?

Linda Hamilton
Linda Hamilton原创
2024-10-31 06:51:30492浏览

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>

方法二:大量线段

对于大量线段,可以使用 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
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>

以上是如何使用 Matplotlib 绘制不同颜色的线?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn