これは完全なハックですが、あなたのシナリオではうまくいくはずです。
基本的には、入力文字列が長くなるほど密度が低くなる新しいハッチングパターンを定義できます。私は先に行って、あなたのためのHorizontalHatch
パターン(アンダースコア文字の使用に注意してください)に適応しました:あなたは、利用可能なハッチングパターンのリストに追加する必要が
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
を:
matplotlib.hatch._hatch_types.append(CustomHorizontalHatch)
これは非常にエレガントな解決策ではなく、将来のバージョンでいつでも壊れる可能性があることを念頭に置いて
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)
ベア:あなたのプロットのコードでは、今定義されたパターンを使用することができます。また、私のパターンコードはちょうど簡単なハックでもあり、それを改善したいかもしれません。私はHorizontalHatch
から継承していますが、柔軟性を高めるためにはHatchPatternBase
を作成してください。
ハッチングに空白を追加できますか? – TryPyPy