matplotlib では、いくつかの方法で個別の色セグメントで線をプロットできます。選択は、プロットする線分の数によって異なります。
軌跡をプロットする場合のように、少数の線分だけが必要な場合は、次の点を考慮してください:
import numpy as np
import matplotlib.pyplot as plt
# Generate random data
xy = (np.random.random((10, 2)) - 0.5).cumsum(axis=0)
fig, ax = plt.subplots()
# Plot each line segment with a unique color
for start, stop in zip(xy[:-1], xy[1:]):
x, y = zip(start, stop)
ax.plot(x, y, color=plt.cm.gist_ncar(np.random.random()))
plt.show()
膨大な数の線分を処理する場合、より効率的な方法は LineCollection.
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 for compatibility with LineCollection
xy = xy.reshape(-1, 1, 2)
segments = np.hstack([xy[:-1], xy[1:]])
fig, ax = plt.subplots()
# Create a LineCollection with randomly assigned colors
coll = LineCollection(segments, cmap=plt.cm.gist_ncar)
coll.set_array(np.random.random(xy.shape[0]))
# Add the LineCollection to the plot
ax.add_collection(coll)
ax.autoscale_view()
plt.show()
どちらのメソッドでも、選択したカラーマップは Matplotlib ドキュメントを参照して変更できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3