从数据框中以图解方式绘制并排堆积的条形图

时间:2019-03-13 15:23:31

标签: python python-3.x plotly plotly-dash

我有以下数据框:

Position   Tenure  Location  Concept
a          0-3     d          Y  
a          4-7     e          N
b          4-7     f          M 
c          8-11    d          M
d          0-3     g          Y
b          12-14   f          N

我想要的是每个概念的位置,任期和位置的并排堆积的条形图。例如对于概念YI,我希望在任期图表(高度为2,在这种情况下只有0-3)旁边要有位置图(高度为2,在a和d上分别堆叠),位置图(高度为2, d为1,g为1)。

希望这是有道理的。谢谢!

1 个答案:

答案 0 :(得分:0)

听起来好像您想要一个分组并堆叠的条形图,据我所知is not available at the moment。但是,当要对特定数据框的所有方面进行分组和可视化时,在px.Bar()的参数中,plotly还有其他灵活的选择:

情节:

enter image description here

代码:

# imports
import plotly.express as px
import pandas as pd

# data input
df = pd.DataFrame({'Position': {0: 'a', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'b'},
                     'Tenure': {0: '0-3', 1: '4-7', 2: '4-7', 3: '8-11', 4: '0-3', 5: '12-14'},
                     'Location': {0: 'd', 1: 'e', 2: 'f', 3: 'd', 4: 'g', 5: 'f'},
                     'Concept': {0: 'Y', 1: 'N', 2: 'M', 3: 'M', 4: 'Y', 5: 'N'}})
# plotly express
fig = px.bar(df, x="Concept", y="Tenure", color="Tenure", barmode="group",
            facet_col="Location",color_discrete_sequence=px.colors.diverging.Spectral[-2::-1])

# Remove duplicate x-axis names:
for axis in fig.layout:
    if type(fig.layout[axis]) == go.layout.XAxis:
        fig.layout[axis].title.text = ''

fig['layout']['xaxis2']['title']['text']='Concept'

fig.show()