【问题标题】:countplot and pieplot inverting labels colorscountplot 和 pieplot 反转标签颜色
【发布时间】:2020-11-30 23:49:04
【问题描述】:

我正在绘制一个计数图和一个饼图,但“男性”和“女性”在每个图中都以相反的颜色标记

import matplotlib.pyplot as plt
import seaborn as sns
fig, ax = plt.subplots(1,figsize=(20,5))
sns.countplot(x="sex",data=insurance_ds) #plotting histogram
plt.title("Male/Female Frequency",fontsize=25)
plt.xlabel("Sex",fontsize=20)
plt.ylabel("Frequency",fontsize=20)
plt.tick_params(labelsize=12)
plt.xticks(rotation=90)
plt.yticks(rotation=45)
fig, ax = plt.subplots(1,figsize=(5,5))
insurance_ds["sex"].value_counts().plot.pie(autopct='%1.1f%%',shadow=True,textprops={'fontsize': 10}) 
plt.title("Male/Female Frequency",fontsize=25)

【问题讨论】:

  • 您可以使用order= 参数:sns.countplot(...., order=['male', 'female'])。或者,您可以对两个图都使用 pandas 绘图:insurance_ds["sex"].value_counts().plot.bar(...) 而不是 seaborn 的计数图。

标签: python matplotlib plot seaborn


【解决方案1】:

如果您将列设置为类别,它也应该可以工作:

import matplotlib.pyplot as plt
import seaborn as sns

insurance_ds = pd.DataFrame({'sex':np.random.choice(['male','female'],1000)})
insurance_ds['sex'] = pd.Categorical(insurance_ds['sex'],categories=['male','female'])
fig, ax = plt.subplots(1,2,figsize=(10,5))
sns.countplot(x="sex",data=insurance_ds,ax=ax[0]) 
insurance_ds["sex"].value_counts().plot.pie(autopct='%1.1f%%',shadow=True,textprops={'fontsize': 10},ax=ax[1]) 

【讨论】:

    猜你喜欢
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 2016-05-09
    相关资源
    最近更新 更多