Comment puis-je augmenter l'espace entre chaque barre avec les diagrammes à barres matplotlib, car ils continuent de les entasser au centre . (c'est ce à quoi il ressemble actuellement)
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()
Essayez de remplacer
plt.bar(range(len(my_dict)), my_dict.values(), align='center')
avec
plt.figure(figsize=(20, 3)) # width:20, height:3
plt.bar(range(len(my_dict)), my_dict.values(), align='Edge', width=0.3)
Il y a 2 façons d'augmenter l'espace entre les barres Pour référence, voici les fonctions de tracé
plt.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)
La fonction de tracé a un paramètre de largeur qui contrôle la largeur de la barre. Si vous diminuez la largeur, l'espace entre les barres se réduira automatiquement. La largeur pour vous est définie sur 0,8 par défaut.
width = 0.5
Si vous voulez garder la largeur constante, vous devrez espacer où les barres sont placées sur l'axe des x. Vous pouvez utiliser n'importe quel paramètre de mise à l'échelle. Par exemple
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)