Plotly dash 人口条形图无法正常工作

Plotly dash population bar chart not working properly

想做一个简单的人口柱状图,但是看不懂。 我的数据集是:

Age,Women,Men
"18-24",1.8%,2%
"25-34",20.9%,13.7%
"35-44",19.3%,14.6%
"45-54",9.3%,8%
"55-64",3.6%,2.9%
"65+",2.3%,1.6%

代码是:

example_graph11  =  px.bar(facebook2, x='Age', y=['Men', 'Women'], barmode='stack',

          title = 'Percentage of Facebook fans by age and gender')

但是结果很奇怪,我不明白应该输入什么数据。我也尝试使用金字塔图,但没有用。

Image of the result

import matplotlib.pyplot as plt

data = {
    'age': ['18-24', '25-34', '35-44', '45-54', '55-64', '65+'],
    'women': [1.8, 20.9, 19.3, 9.3, 3.6, 2.3],
    'men': [2, 13.7, 14.6, 8, 2.9, 1.6]
}

x = data['age']
y_women = data['women']
y_men = data['men']

plt.bar(x, y_women, color='purple', label='Women')
plt.bar(x, y_men, color='green', label='Men')

plt.legend()
plt.xlabel('Age')
plt.ylabel('Population %')
plt.title('Population by age and gender')

plt.show()

Plotly 正在以太标准化(将值除以自身)所有条目,因为每个间隔只有 1 点一切都变成 1。或者认为数据是一个字符串,因为 %,所以它的计数和绘图个人价值观。

您可以尝试这样的操作,删除 % 然后绘图:

import plotly.graph_objects as go
interval=["18-24", "25-34", "35-44","45-54", "55-64","65+"]
Men = [2,13.7,14.6,8,2.9,1.6]
Women = [1.8, 20.9, 19.3, 9.3,3.6,2.3]

fig = go.Figure(data=[
    go.Bar(name='Women', x=interval, y=Women),
    go.Bar(name='Men', x=interval, y=Men)
])
# Change the bar mode
fig.update_layout(barmode='group')
fig.show()