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

Linda Hamilton
发布: 2024-10-31 06:51:30
原创
422 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!