Замените xticks именами
Я работаю над набором данных Spotify от Kaggle. Я построил гистограмму, показывающую лучших исполнителей с наибольшим количеством песен в фрейме данных. Но на оси X показаны числа, и я хочу показать имена художников.
names = list(df1['artist'][0:19])
plt.figure(figsize=(8,4))
plt.xlabel("Artists")
sns.barplot(x=np.arange(1,20),
y=df1['song_title'][0:19]);
Я пробовал как список, так и тип объекта Series, но оба выдают ошибку.
Как заменить числа в xticks на имена?
2 ответа
Решение
Импорт
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Данные
df = pd.read_csv('Spotify-2000.csv')
titles = pd.DataFrame(df.groupby(['Artist'])['Title'].count()).reset_index().sort_values(['Title'], ascending=False).reset_index(drop=True)
titles.rename(columns={'Title': 'Title Count'}, inplace=True)
# titles.head()
Artist Title Count
Queen 37
The Beatles 36
Coldplay 27
U2 26
The Rolling Stones 24
участок
plt.figure(figsize=(8, 4))
chart = sns.barplot(x=titles.Artist[0:19], y=titles['Title Count'][0:19])
chart.set_xticklabels(chart.get_xticklabels(), rotation=90)
plt.show()
Итак, я не знал этого, хотя сейчас кажется глупым не делать этого задним числом!
Передайте имена (или строковые метки) в аргументе для оси X.
используйте plt.xticks(rotate=90), чтобы метки не перекрывались