我正在嘗試制作一個簡單的分類條形圖,以顯示人們根據他們的幸福等級(x 軸)和年齡組(在圖例/鍵中)有多少婚外情。這是我的代碼。
import pandas as pd
import seaborn as sns
url = 'https://vincentarelbundock.github.io/Rdatasets/csv/AER/Affairs.csv'
affairs = pd.read_csv(url)
age_categorical = []
for row in affairs['age']:
if 0<row<30:
age_categorical.append("Under 30")
elif 30<=row<=40:
age_categorical.append("30 to 40 Years Old")
elif 40<row<=55:
age_categorical.append("41 to 55 years old")
else:
age_categorical.append("Older than 55")
affairs['age_categorical'] = age_categorical
# count number of affairs for each happiness rating
affairs_subset = affairs.copy()
affairs_subset = affairs_subset[affairs_subset["affairs_dummy"] != 0]
affairs_rating = affairs_subset.groupby('rating').size()
# create dataframe table for plot
happiness = pd.DataFrame({
'Happiness rating' : [1, 2, 3, 4, 5],
'Number of Affairees': [8, 33, 27, 48, 34]
})
# put in barplot
plot = sns.barplot(x = 'Happiness rating', y='Number of Affairees', hue=affairs['age_categorical'],data = happiness).set(title='Happiness and extra-marital affairs')
生成的條形圖未顯示圖例中的所有類別。

uj5u.com熱心網友回復:
這些值需要位于相同的資料框中,以便順序正確。您也可以分組并創建您要繪制的表格。
affairs_subset = affairs_subset[affairs_subset["affairs"] != 0]
df = affairs_subset.groupby(['rating','age_categorical'])['affairs'].sum().reset_index()
sns.barplot(data=df, x="rating", y="affairs", hue="age_categorical")

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515946.html
上一篇:從累積和計算15分鐘資料
