2016-11-13 2 views
3

Как увеличить пространство между каждым баром с помощью графиков штрих-кодов matplotlib, так как они сохраняют зубы в центре. enter image description here (это то, что в настоящее время он выглядит)matplotlib bar chart: space out bars

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() 

ответ

6

Попробуйте заменить

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) 
+0

Я постоянно получаю эту ошибку 'ValueError: недопустимое выравнивание: левое' – Smith

+0

Извините за ошибки , Параметр Align имеет 2 варианта: {'edge', 'center'}. – swatchai

+0

, который фиксировал расстояние между барами, ура. Однако слова на оси х все еще переполнены. Как бы я сделал его вертикальным? – Smith