بالنظر إلى قائمتين، latt و lont، فإن الهدف هو رسم خط واحد حيث كل منهما يتم تمثيل قطعة من 10 نقاط متتالية بلون مختلف.
عدد محدود من شرائح الخط
إذا كان عدد مقاطع الخط صغيرًا، مثل 10 أو أقل، فإن الطريقة البسيطة هي استخدام حلقة لرسم كل مقطع بلون فريد.
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()
عدد كبير من مقاطع الخط
بالنسبة لعدد كبير من مقاطع الخط، يمكن أن يكون استخدام الحلقة بطيئًا. بدلاً من ذلك، قم بإنشاء كائن LineCollection.
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()
بالنسبة لكلا الطريقتين، نستخدم خريطة الألوان "Gist_ncar" لإنشاء ألوان فريدة. ارجع إلى هذه الصفحة للتعرف على خيارات خريطة الألوان الأخرى: http://matplotlib.org/examples/color/colormaps_reference.html
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3