情节:如何使用分组依据创建条形图?

杰夫

我有一个数据集,如下所示:

import pandas as pd
data = dict(Pclass=[1,1,2,2,3,3],
            Survived = [0,1,0,1,0,1],
            CategorySize = [80,136,97,87,372,119] )

我需要python中创建一个barchartusing ,将其按Pclass分组在每组中,我有2列并且在Y轴上,我应该有因此,我必须有3组中的6条。plotlySurvived=0Survived=1CategorySize

这是我尝试过的:

import plotly.offline as pyo
import plotly.graph_objects as go

data = [ go.Bar( x = PclassSurvived.Pclass, y = PclassSurvived.CategorySize ) ]
layout = go.Layout(title= 'Pclass-Survived', xaxis = dict(title = 'Pclass'), yaxis = dict(title = 'CategorySize'),barmode='group' )
fig = go.Figure(data = data, layout = layout)

pyo.plot( fig, filename='./Output/Pclass-Survived.html')

但是,这不是我所需要的。

背心

我在处理您的样本数据集时遇到麻烦。PclassSurvived.PclassPclassSurvived.CategorySize没有定义,它不是100%清楚,我要在这里完成的任务。但是从您的解释和数据集的结构来看,这似乎可以帮助您:

情节1:

在此处输入图片说明

代码1:

# imports
from plotly.subplots import make_subplots
import plotly.figure_factory as ff
import plotly.graph_objs as go
import pandas as pd
import numpy as np

data = dict(Pclass=[1,1,2,2,3,3],
            Survived = [0,1,0,1,0,1],
            CategorySize = [80,136,97,87,372,119] )
df=pd.DataFrame(data)

s0=df.query('Survived==0')
s1=df.query('Survived==1')

#layout = go.Layout(title= 'Pclass-Survived', xaxis = dict(title = 'Pclass'), yaxis = dict(title = 'CategorySize'),barmode='group' )
fig = go.Figure()

data=data['Pclass']

fig.add_trace(go.Bar(x=s0['Pclass'], y = s0['CategorySize'],
                    name='dead'
                    )
             )

fig.add_trace(go.Bar(x=s1['Pclass'], y = s1['CategorySize'],
                    name='alive'
                    )
             )

fig.update_layout(barmode='group')
fig.show()

编辑:您可以使用以下plotly.offline模块生成相同的图

代码2:

# Import the necessaries libraries
import plotly.offline as pyo
import plotly.graph_objs as go
import pandas as pd

# Set notebook mode to work in offline
pyo.init_notebook_mode()

# data
data = dict(Pclass=[1,1,2,2,3,3],
            Survived = [0,1,0,1,0,1],
            CategorySize = [80,136,97,87,372,119] )
df=pd.DataFrame(data)

# 
s0=df.query('Survived==0')
s1=df.query('Survived==1')

fig = go.Figure()

data=data['Pclass']

fig.add_trace(go.Bar(x=s0['Pclass'], y = s0['CategorySize'],
                    name='dead'
                    )
             )

fig.add_trace(go.Bar(x=s1['Pclass'], y = s1['CategorySize'],
                    name='alive'
                    )
             )

pyo.iplot(fig, filename = 'your-library')

堆叠杆的替代方法:

情节2:

在此处输入图片说明

代码3:

# imports
from plotly.subplots import make_subplots
import plotly.figure_factory as ff
import plotly.graph_objs as go
import pandas as pd
import numpy as np

data = dict(Pclass=[1,1,2,2,3,3],
            Survived = [0,1,0,1,0,1],
            CategorySize = [80,136,97,87,372,119] )
df=pd.DataFrame(data)

s0=df.query('Survived==0')
s1=df.query('Survived==1')

#layout = go.Layout(title= 'Pclass-Survived', xaxis = dict(title = 'Pclass'), yaxis = dict(title = 'CategorySize'),barmode='group' )
fig = go.Figure()

data=data['Pclass']

fig.add_trace(go.Bar(x=s0['Pclass'], y = s0['CategorySize'],
                    name='dead'
                    )
             )

fig.add_trace(go.Bar(x=s1['Pclass'], y = s1['CategorySize'],
                    name='alive'
                    )
             )

df_tot = df.groupby('Pclass').sum()

annot1 = [dict(
            x=xi,
            y=yi,
            text=str(yi),
            xanchor='auto',
            yanchor='bottom',
            showarrow=False,
        ) for xi, yi in zip(df_tot.index, df_tot['CategorySize'])]

fig.update_layout(barmode='stack', annotations=annot1)
fig.show()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章