Заменить xticks с именами - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю над набором данных 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]);

Я пробовал использовать оба типа объектов: список и серия, но оба дают ошибку.

enter image description here

Как заменить числа в xticks именами?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Импорт

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

enter image description here

0 голосов
/ 21 апреля 2020

ОК, так что я не знал этого, хотя теперь кажется, что глупо не делать это задним числом!

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

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

enter image description here

...