ম্যাটপ্ল্লোলিবের বিভিন্ন রঙের পয়েন্ট সহ প্লট প্লট করার স্বাভাবিক উপায় হ'ল প্যারামিটার হিসাবে রঙগুলির একটি তালিকা পাস করা।
উদাহরণ:
import matplotlib.pyplot
matplotlib.pyplot.scatter([1,2,3],[4,5,6],color=['red','green','blue'])
যখন আপনার তালিকাগুলির একটি তালিকা রয়েছে এবং আপনি তালিকা অনুযায়ী সেগুলি রঙিন করতে চান। আমি মনে করি সবচেয়ে মার্জিত উপায়টি হ'ল @ ডিএসএম দ্বারা প্রস্তাবিত, কেবল ছড়িয়ে ছিটিয়ে একাধিক কল করার জন্য একটি লুপ করুন।
তবে যদি কোনও কারণে আপনি কেবল একটি কল দিয়ে এটি করতে চেয়েছিলেন তবে আপনি একটি তালিকা বোঝার সাথে কিছুটা ফ্লোরিং বিভাগ সহ রঙের একটি বৃহত তালিকা তৈরি করতে পারেন:
import matplotlib
import numpy as np
X = [1,2,3,4]
Ys = np.array([[4,8,12,16],
[1,4,9,16],
[17, 10, 13, 18],
[9, 10, 18, 11],
[4, 15, 17, 6],
[7, 10, 8, 7],
[9, 0, 10, 11],
[14, 1, 15, 5],
[8, 15, 9, 14],
[20, 7, 1, 5]])
nCols = len(X)
nRows = Ys.shape[0]
colors = matplotlib.cm.rainbow(np.linspace(0, 1, len(Ys)))
cs = [colors[i//len(X)] for i in range(len(Ys)*len(X))] #could be done with numpy's repmat
Xs=X*nRows #use list multiplication for repetition
matplotlib.pyplot.scatter(Xs,Ys.flatten(),color=cs)
cs = [array([ 0.5, 0. , 1. , 1. ]),
array([ 0.5, 0. , 1. , 1. ]),
array([ 0.5, 0. , 1. , 1. ]),
array([ 0.5, 0. , 1. , 1. ]),
array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),
array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),
array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),
array([ 0.28039216, 0.33815827, 0.98516223, 1. ]),
...
array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,
1.00000000e+00]),
array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,
1.00000000e+00]),
array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,
1.00000000e+00]),
array([ 1.00000000e+00, 1.22464680e-16, 6.12323400e-17,
1.00000000e+00])]