You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly Dash绘制人口条形图结果异常,应使用什么格式输入数据?

问题原因

你当前数据集中的Men和Women列是带%后缀的字符串类型,Plotly无法识别这类文本为可统计的数值,因此绘图输出异常。

修复方案
  • 先做数据格式清洗
    用pandas处理的话,先把百分比列转为数值格式,代码如下:
# 去除百分比符号,转为浮点型数值
facebook2['Men'] = facebook2['Men'].str.rstrip('%').astype('float')
facebook2['Women'] = facebook2['Women'].str.rstrip('%').astype('float')
  • 绘制堆叠条形图
    原有绘图代码无需调整,执行即可得到正常结果:
import plotly.express as px
example_graph11 = px.bar(facebook2, x='Age', y=['Men', 'Women'], barmode='stack',
          title = '不同年龄、性别的Facebook粉丝占比')
example_graph11.show()
  • 人口金字塔图实现方法
    人口金字塔需要将单侧数值转为负数后再绘图,再调整坐标轴显示格式即可正常生成:
# 将男性占比转为负数,用于展示在金字塔左侧
facebook2['Men_negative'] = -facebook2['Men']
pyramid_fig = px.bar(facebook2,
                     y='Age',
                     x=['Men_negative', 'Women'],
                     barmode='relative',
                     orientation='h',
                     title='Facebook粉丝年龄性别分布金字塔',
                     labels={'value':'粉丝占比', 'variable':'性别'})
# 调整x轴刻度,将负数显示为正的百分比值
pyramid_fig.update_xaxes(tickformat=lambda x: f"{abs(x)}%")
# 修改图例显示文本
pyramid_fig.data[0].name = '男性'
pyramid_fig.data[1].name = '女性'
pyramid_fig.show()

内容的提问来源于stack exchange,提问作者Map_confused

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:33:03