0

我正在研究来自 Kaggle 的 Spotify 数据集。我绘制了一个条形图,显示数据框中歌曲最多的顶级艺术家。但X 轴显示数字,我想显示 Artists 的名称

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]);

我尝试了 list 和 Series 对象类型,但都给出了错误。

在此处输入图像描述

如何用名称替换 xticks 中的数字?

4

2 回答 2

1

进口

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

在此处输入图像描述

于 2020-04-20T19:15:27.797 回答
0

好的,所以我不知道这一点,尽管现在事后看来不这样做似乎很愚蠢!

  1. 在 X 轴的参数中传递名称(或字符串标签)。

  2. 使用 plt.xticks(rotate=90) 所以标签不会重叠

在此处输入图像描述

于 2020-04-21T02:49:27.023 回答