簡體   English   中英

Pandas groupby以不同的X軸順序繪制

[英]Pandas groupby plot with different X-Axis order

我正在研究titanic.csv ,並嘗試制作一些情節。 遇到一個問題。 如何重新組織x軸以將相同的pclass值放在一起。

我目前的代碼:

titanic.groupby(['Sex', 'Pclass'])['Survived'].mean().plot(kind='bar', color=my_colors)

產生以下圖表: 在此輸入圖像描述

我想把同一個班級的男性和女性放在一起,以顯示存活率的差異。 有什么建議嗎?

只需更改groupby中列的順序:

import pandas as pd
import seaborn as sns
import matplotlib.pylab as plt

titanic = sns.load_dataset("titanic")

my_colors = ['r','g','b','k','y','magenta']
titanic.groupby(['pclass', 'sex'])['survived'].mean().plot(kind='bar', color=my_colors)
plt.show()

在此輸入圖像描述

或者您可以堆疊條形圖:

titanic.groupby(['pclass', 'sex'])['survived'].mean().unstack('sex').plot(kind='bar', stacked=True)

在此輸入圖像描述

為什么你使用mean而不是count

Altair在這里非常方便。 這里有3個不同的單行生成這個數據集的三個不同的可視化。

import seaborn as sns
titanic = sns.load_dataset("titanic")

from altair import *

第一個即。

Chart(titanic).mark_bar().encode(x='pclass:O', y='mean(survived)', column='sex').configure_cell(width=200, height=200)

在此輸入圖像描述

第二個即。

Chart(titanic).mark_bar().encode(x='sex:N', y='mean(survived):Q',  column='pclass:O').configure_facet_cell(
        strokeWidth=0.0).configure_cell(width=200, height=200)

在此輸入圖像描述

第三個即。

Chart(titanic).mark_bar().encode(x='pclass:O', y='mean(survived):Q',  color='sex:O').configure_cell(width=200, height=200)

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM