我有以下数据框:
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)。
希望这是有道理的。谢谢!
答案 0 :(得分:0)
听起来好像您想要一个分组并堆叠的条形图,据我所知is not available at the moment。但是,当要对特定数据框的所有方面进行分组和可视化时,在px.Bar()
的参数中,plotly还有其他灵活的选择:
情节:
代码:
# 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()