Đây là một hack hoàn chỉnh, nhưng nó sẽ hoạt động cho kịch bản của bạn.
Về cơ bản, bạn có thể xác định mẫu hatch mới trở nên ít dày đặc, chuỗi đầu vào càng dài. Tôi đã đi trước và điều chỉnh mô hình HorizontalHatch
cho bạn (lưu ý việc sử dụng các ký tự gạch dưới):
class CustomHorizontalHatch(matplotlib.hatch.HorizontalHatch):
def __init__(self, hatch, density):
char_count = hatch.count('_')
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
Sau đó bạn phải thêm nó vào danh sách các mẫu hatch sẵn:
matplotlib.hatch._hatch_types.append(CustomHorizontalHatch)
Trong mã âm mưu của bạn, bây giờ bạn có thể sử dụng mẫu được xác định:
kwargs = {'hatch':'_'} # same as '-'
rects2 = ax.bar(theta, day7, width,fill=False, align='edge', alpha=1, **kwargs)
kwargs = {'hatch':'__'} # less dense version
rects1 = ax.bar(theta, day1, width,fill=False, align='edge', alpha=1, **kwargs)
Hãy nhớ rằng đây không phải là giải pháp rất thanh lịch và có thể phá vỡ bất kỳ lúc nào trong các phiên bản sau. Mã mẫu của tôi cũng chỉ là một bản hack nhanh và bạn có thể muốn cải thiện nó. Tôi được kế thừa từ HorizontalHatch
nhưng để linh hoạt hơn, bạn sẽ xây dựng trên HatchPatternBase
.
Bạn có thể thêm khoảng trống để mở không? – TryPyPy