Python matplotlib — удвоение гистограммы

#python #matplotlib #histogram

Вопрос:

Задача: сохраните 2 гистограммы в отдельных файлах: гистограмму рейтингов и гистограмму лет. Данные взяты из рейтингов.файл списка.

Проблема: Вторая гистограмма выводит свои собственные значения и значения первой гистограммы.

 import matplotlib.pyplot as plt

try:
    with open('ratings.list', 'r') as reader:
        line = reader.readline()
        while line == 'n' or 'New' not in line and 'Distribution' not in line:
            line = reader.readline()

        line = reader.readline()
        ratings = []
        years = []
        while line != '' and line != 'n' and line != 'BOTTOM 10 MOVIES (1500  VOTES)':
            columns = line.split()
            initial_tabs = 13
            index = len(columns[0])   len(columns[1])   len(columns[2])   initial_tabs
            title = line[index:len(line)]

            with open('top250_movies.txt', 'a') as writer:
                line = title   'n'
                writer.write(line)

            ratings.append(columns[2])

            year = line[(line.index('(')   1):line.index(')')]
            years.append(year)
            years.sort()

            line = reader.readline()
    
        rate_hist = plt.hist(ratings, bins=10)
        plt.title('Ratings')
        plt.xlabel('Ratings')
        plt.ylabel('Movies count')
        ys = rate_hist[0]
        xs = rate_hist[1]
        plt.savefig('ratings.png')
    
        year_hist = plt.hist(years, bins=50)
        plt.title('Years')
        plt.xlabel('Years')
        plt.xticks(rotation=90, fontsize=4)
        plt.ylabel('Movies count')
        ys = year_hist[0]
        xs = year_hist[1]
        plt.savefig('years.png')
    
    
except IOError:
    print('File does not exist')
 

моя правильная гистограмма

неправильная гистограмма с двойным rate_hist

Ответ №1:

Попробуйте использовать plt.close(fig) после первого сохранения сюжета, непосредственно перед началом второго.