বার চার্টে হ্যাচ প্যাটার্ন (যেমন //, \\, o) এর ঘনত্ব বা ডেনসিটি কাস্টমাইজ করতে হলে hatch.HorizontalHatch ক্লাসকে সাবক্লাস করে num_lines ওভাররাইড করতে হয়।
- ফিগার সাইজ এবং লেআউট সেট করুন।
- একটি কাস্টম হ্যাচ ক্লাস তৈরি করুন যা
hatch.HorizontalHatchইনহেরিট করে। __init__-এdensityপ্যারামিটার ব্যবহার করেnum_linesক্যালকুলেট করুন।- ক্লাসটি
hatch._hatch_types.append()দিয়ে রেজিস্টার করুন। - বার প্লটে
hatch="o"ব্যবহার করুন। plt.show()।
from matplotlib import pyplot as plt, hatch
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
class MyHorizontalHatch(hatch.HorizontalHatch):
def __init__(self, hatch, density):
char_count = hatch.count('o')
if char_count > 0:
self.num_lines = int((1.0 / char_count) * density)
else:
self.num_lines = 0
self.num_vertices = self.num_lines * 2
super().__init__(hatch, density)
hatch._hatch_types.append(MyHorizontalHatch)
fig = plt.figure()
ax1 = fig.add_subplot(111)
x = [3, 6, 1]
y = [4, 6, 1]
ax1.bar(x, y, color='green', edgecolor='red', hatch="o", lw=1., zorder=0)
plt.show()
হরেক বারে 'o' হ্যাচ প্যাটার্ন থাকবে কিন্তু ডেনসিটি কম থাকবে (অনেক খালি স্থান থাকবে)। density মান বাড়ালে হ্যাচ ঘন হবে।