如何为 10 个连续点的每段绘制不同颜色的线?

Linda Hamilton
发布: 2024-10-31 01:53:02
原创
386 人浏览过

How to Plot a Line with Varying Colors for Each Segment of 10 Consecutive Points?

以不同颜色绘制一条线

问题陈述

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

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