情节单杠比较
Plotly horizontal bar comparizon
所附图表来自 R plotly 包。这是否存在或可以使用 plotly 包在 python 中完成?
您可以在 plotly-python 中创建发散堆叠条,方法是将男性和女性人口的条形图绘制为单独的轨迹,使男性的人口值为负,然后使用自定义数据中的原始值,这样男性人群显示正值。
我遵循了@empet 在他的回答 here 中概述的方法,并修改了类别和 hovertemplate 以适合您的示例。
import numpy as np
import pandas as pd
import plotly.graph_objects as go
d = {'Age': ['0-19','20-29','30-39','40-49','50-59','60-Inf'],
'Male': [1000,2000,4200,5000,3500,1000],
'Female': [1000,2500,4000,4800,2000,1000],
}
df = pd.DataFrame(d)
fig = go.Figure()
fig.add_trace(go.Bar(x=-df['Male'].values,
y=df['Age'],
orientation='h',
name='Male',
customdata=df['Male'],
hovertemplate = "Age: %{y}<br>Pop:%{customdata}<br>Gender:Male<extra></extra>"))
fig.add_trace(go.Bar(x= df['Female'],
y =df['Age'],
orientation='h',
name='Female',
hovertemplate="Age: %{y}<br>Pop:%{x}<br>Gender:Female<extra></extra>"))
fig.update_layout(barmode='relative',
height=400,
width=700,
yaxis_autorange='reversed',
bargap=0.01,
legend_orientation ='h',
legend_x=-0.05, legend_y=1.1
)
fig.show()
所附图表来自 R plotly 包。这是否存在或可以使用 plotly 包在 python 中完成?
您可以在 plotly-python 中创建发散堆叠条,方法是将男性和女性人口的条形图绘制为单独的轨迹,使男性的人口值为负,然后使用自定义数据中的原始值,这样男性人群显示正值。
我遵循了@empet 在他的回答 here 中概述的方法,并修改了类别和 hovertemplate 以适合您的示例。
import numpy as np
import pandas as pd
import plotly.graph_objects as go
d = {'Age': ['0-19','20-29','30-39','40-49','50-59','60-Inf'],
'Male': [1000,2000,4200,5000,3500,1000],
'Female': [1000,2500,4000,4800,2000,1000],
}
df = pd.DataFrame(d)
fig = go.Figure()
fig.add_trace(go.Bar(x=-df['Male'].values,
y=df['Age'],
orientation='h',
name='Male',
customdata=df['Male'],
hovertemplate = "Age: %{y}<br>Pop:%{customdata}<br>Gender:Male<extra></extra>"))
fig.add_trace(go.Bar(x= df['Female'],
y =df['Age'],
orientation='h',
name='Female',
hovertemplate="Age: %{y}<br>Pop:%{x}<br>Gender:Female<extra></extra>"))
fig.update_layout(barmode='relative',
height=400,
width=700,
yaxis_autorange='reversed',
bargap=0.01,
legend_orientation ='h',
legend_x=-0.05, legend_y=1.1
)
fig.show()