التنقل عبر قائمة أنماط الخطوط عند رسم أعمدة المصفوفة في matplotlib

StackOverflow https://stackoverflow.com//questions/23000578

  •  20-12-2019
  •  | 
  •  

سؤال

ربما أفتقد شيئًا واضحًا.أقوم بتخطيط البيانات الموجودة في أعمدة المصفوفة في مكالمة واحدة باستخدام

plot(x,A)

أين هو x عبارة عن نطاق 1D numpy بطول يساوي عدد صفوف A.إن الخطوط التي ينشئها هذا هي جميعها خطوط كاملة مع دورة ألوان من خلال دورة الألوان الافتراضية المحددة في matplotlib.rc

أعلم أنه يمكنني تعديل دورة الألوان (ويمكنني أيضًا الحصول على لون واحد ونمط خط واحد لجميع الأعمدة).ومع ذلك، كيف يمكنني فقط تدوير أنماط الخطوط (على سبيل المثال من خلال كامل، متقطع، منقط، منقط) وليس اللون (أريد الاحتفاظ به باللون الأسود) مع الاستمرار في الاحتفاظ بمكالمة الحبكة المفردة البسيطة؟

plot(x,A,['k-','k--','k-.','k:']) 

لا يعمل.

هل كانت مفيدة؟

المحلول

المصدر ذو الصلة موجود في class _process_plot_var_args() في axes.py, كما ترون، يتم تعريف دورة اللون فقط.دورة نمط خط مماثلة غير ممكنة.

لذلك نحن بحاجة إلى القيام بما يلي:

A=range(10)
B=np.random.randn(10,12)
p_list=plt.plot(A, B)
line_cycle=['-','--','-.',':']
_=[l.set_linestyle(st) for l, st in zip(p_list, np.repeat(line_cycle, 1+(len(p_list)/len(line_cycle))))]

enter image description here

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top