Matplotlibバーチャートを使用して各バーの間隔を広げる方法は、中央に詰め込み続けるためです。 (これは現在の外観です)
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
def ww(self):#wrongwords text file
with open("wrongWords.txt") as file:
array1 = []
array2 = []
for element in file:
array1.append(element)
x=array1[0]
s = x.replace(')(', '),(') #removes the quote marks from csv file
print(s)
my_list = ast.literal_eval(s)
print(my_list)
my_dict = {}
for item in my_list:
my_dict[item[2]] = my_dict.get(item[2], 0) + 1
plt.bar(range(len(my_dict)), my_dict.values(), align='center')
plt.xticks(range(len(my_dict)), my_dict.keys())
plt.show()
交換してみてください
plt.bar(range(len(my_dict)), my_dict.values(), align='center')
と
plt.figure(figsize=(20, 3)) # width:20, height:3
plt.bar(range(len(my_dict)), my_dict.values(), align='Edge', width=0.3)
バー間の間隔を広げるには2つの方法があります。参考として、プロット関数を紹介します。
plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
プロット関数には、バーの幅を制御する幅パラメーターがあります。幅を小さくすると、バー間のスペースが自動的に小さくなります。幅はデフォルトで0.8に設定されています。
width = 0.5
幅を一定に保ちたい場合は、バーがx軸上に配置される場所を空ける必要があります。任意のスケーリングパラメータを使用できます。例えば
x = (range(len(my_dict)))
new_x = [2*i for i in x]
# you might have to increase the size of the figure
plt.figure(figsize=(20, 3)) # width:10, height:8
plt.bar(new_x, my_dict.values(), align='center', width=0.8)