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

Posted

技术标签:

【中文标题】Plotly dash 人口条形图无法正常工作【英文标题】:Plotly dash population bar chart not working properly 【发布时间】:2021-11-04 11:20:51 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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()

【讨论】:

【参考方案2】:
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 dash 人口条形图无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

如何在绘图条形图上左对齐文本(包含示例图像)[Plotly-Dash]

使用 Plotly 生成有角度的条形图(来自 Dash 的风险分析)

Plotly Dash 图例中的自定义标记

R Plotly:右侧 Y 轴的水平条形图

Plotly-Dash:反应迟钝的情节

有没有办法用 plotly 或 python 创建条形图可视化,其中 y 轴是 24 小时范围,x 轴是所有工作日?