আপনি আপনার স্ক্রেটারের জন্য সাধারণ হিসাবে বাউন্ডারিএনরম ব্যবহার করে আপনি খুব সহজেই একটি কাস্টম ডিসার্ট কালারবার তৈরি করতে পারেন। বিদ্বেষপূর্ণ বিট (আমার পদ্ধতিতে) 0 টি ধূসর হিসাবে শো আপ করছে।
চিত্রগুলির জন্য আমি প্রায়শই cmap.set_bad () ব্যবহার করি এবং আমার ডেটাগুলিকে একটি ছদ্মবেশী মুখোশযুক্ত অ্যারে রূপান্তর করি। এটি 0 ধূসর করা আরও সহজ হবে তবে আমি এটি স্ক্রেটার বা কাস্টম সিএম্যাপের সাথে কাজ করতে পারি না।
বিকল্প হিসাবে আপনি স্ক্র্যাচ থেকে আপনার নিজস্ব cmap তৈরি করতে পারেন, বা একটি বিদ্যমান পড়তে পারেন এবং কিছু নির্দিষ্ট এন্ট্রিগুলিকে ওভাররাইড করতে পারেন।
import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
fig, ax = plt.subplots(1, 1, figsize=(6, 6))
x = np.random.rand(20)
y = np.random.rand(20)
tag = np.random.randint(0, 20, 20)
tag[10:12] = 0
cmap = plt.cm.jet
cmaplist = [cmap(i) for i in range(cmap.N)]
cmaplist[0] = (.5, .5, .5, 1.0)
cmap = mpl.colors.LinearSegmentedColormap.from_list(
'Custom cmap', cmaplist, cmap.N)
bounds = np.linspace(0, 20, 21)
norm = mpl.colors.BoundaryNorm(bounds, cmap.N)
scat = ax.scatter(x, y, c=tag, s=np.random.randint(100, 500, 20),
cmap=cmap, norm=norm)
ax2 = fig.add_axes([0.95, 0.1, 0.03, 0.8])
cb = plt.colorbar.ColorbarBase(ax2, cmap=cmap, norm=norm,
spacing='proportional', ticks=bounds, boundaries=bounds, format='%1i')
ax.set_title('Well defined discrete colors')
ax2.set_ylabel('Very custom cbar [-]', size=12)
আমি ব্যক্তিগতভাবে মনে করি যে 20 টি বিভিন্ন রঙের সাথে এটি নির্দিষ্ট মানটি পড়তে কিছুটা শক্ত, তবে অবশ্যই এটি আপনার পক্ষে অবতীর্ণ।