Замените 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()

Итак, я не знал этого, хотя сейчас кажется глупым не делать этого задним числом!

  1. Передайте имена (или строковые метки) в аргументе для оси X.

  2. используйте plt.xticks(rotate=90), чтобы метки не перекрывались

Другие вопросы по тегам