Ниже приведена функция, которую я использую для печати 3 гистограмм. Хотя, когда я запускаю код, все 3 печатных графика объединяются, а не по отдельности.
Когда я запускаю последние 3 строки отдельно, я могу получить графики отдельно, однако это не идеально, так как я хочу иметь возможность запустить код все как один.
Самое главное, как я могу заставить каждую диаграмму печатать отдельно?
Кроме того, как я могу сохранить каждый график с уникальным именем, например, день 1, день 2, день 3? Кроме того, можно ли на каждом графике иметь уникальные заголовки, например, наиболее часто встречающиеся твиты: День 1, наиболее распространенные твиты: День 2, наиболее распространенные твиты: День 3?
def tweet_analysis_per_day(tweet):
# tokenizing tweet text data
tweet = [word_tokenize(i) for i in tweet]
#splits list into words
tweet = list(itertools.chain(*tweet))
#lowercase
tweet = [word.lower() for word in tweet]
#lemantize
tweet = [nltk.WordNetLemmatizer().lemmatize(word) for word in tweet]
# remove stopwords
tweet = [word for word in tweet if word not in custom_stopwords_tweet]
tweet = [word for word in tweet if word not in default_stopwords]
tweet = [word for word in tweet if word not in custom_stopwords]
#removing 1 letter words and nonetype
tweet = [word for word in tweet if len(word) > 1]
# obtaining word frequencies, then converting to a dataframe of most common words
dist = nltk.FreqDist(tweet)
top15 =[]
for word, frequency in dist.most_common(15):
top15.append(u'{} {}'.format(word, frequency))
top15 = pd.DataFrame({'Name': top15})
top15 = top15.Name.str.split(expand=True)
top15.columns = {'word', 'frequency'}
top15.rename(columns = {'frequency':'words', 'word':'frequency'}, inplace = True)
top15['frequency'] = top15['frequency'].astype(int)
# Create horizontal bars
plt.barh(top15['words'], top15['frequency'], color= '#005EB8')
plt.title('Most commonly tweeted words: Day ')
plt.ylabel('Top 15 words')
plt.xlabel('Frequency')
plt.gca().invert_yaxis()
plt.gca().set_xlim([1000,10000])
plt.gcf().set_size_inches(8, 6)
plt.savefig('tweet.png')
#strip grouped tweets by day to lists
day1tweets = tweet_analysis_per_day(day1['text'].to_list())
day2tweets = tweet_analysis_per_day(day2['text'].to_list())
day3tweets = tweet_analysis_per_day(day3['text'].to_list())