首页 > 解决方案 > 如何更改此条形图上条形的顺序?

问题描述

我正在使用 Seaborn 的计数绘图功能来绘制 Prosper Ratings。

剧情。

用于创建绘图的代码:

plt.figure(figsize = [10, 8])
sb.countplot(data = clean_loan_data, x = 'ProsperRating', color = base_color);
plt.xlabel('Prosper Rating')
plt.ylabel('Count')
plt.title('Prosper Rating Counts');

我要解决的问题是条的顺序。目前,顺序为 A、D、B、E、C、AA 和 HR。为什么这是固定顺序,我该如何更改?为了清楚起见,我想移动每个条及其标签。需要的顺序是 AA、A、B、C、D、E 和 HR。

标签: pythonmatplotlibseaborn

解决方案


order=您可以通过参数设置顺序。如果您还想指定单独的颜色,请使用palette=

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import numpy as np

ratings = ['AA', 'A', 'B', 'C', 'D', 'E', 'HR']
colors = ['crimson', 'limegreen', 'dodgerblue', 'gold', 'blueviolet', 'darkturquoise', 'fuchsia']
samples = np.repeat(ratings, np.random.randint(10, 100, len(ratings)))
np.random.shuffle(samples)
clean_loan_data = pd.DataFrame({'ProsperRating': samples})

plt.figure(figsize=[10, 8])
sns.countplot(data=clean_loan_data, x='ProsperRating', palette=colors, order=ratings)
plt.xlabel('Prosper Rating')
plt.ylabel('Count')
plt.title('Prosper Rating Counts')
plt.show()

示例图


推荐阅读