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

如何用Plotly绘制按职位分类的多列编程语言分面直方图?

解决分面直方图重复问题的方法

你的问题根源在于数据格式和参数用法不对:当前用的是宽格式数据(Python、SQL各占一列),直接把多列传给x参数时,Plotly会把所有列的数值合并后统一统计,所以每个职位分面的结果完全一致。

正确实现步骤如下:

  • 转换数据为长格式:用pandas的melt()方法,把原宽格式数据转成每行对应一个职位+一种语言+对应数值的长格式,生成Role(职位)、language(编程语言名称)、count(使用次数/占比)三列。
    示例代码:
    import pandas as pd
    # 假设原数据包含Role、Python、SQL三列
    long_format_df = pd.melt(
        languages_job_title_grouped,
        id_vars=['Role'],
        value_vars=['Python', 'SQL'],
        var_name='language',
        value_name='count'
    )
    
  • 绘制分面直方图:基于转换后的长格式数据,指定x为语言名称,y为对应数值,再设置分面参数即可:
    import plotly.express as px
    px.histogram(
        long_format_df,
        x='language',
        y='count',
        facet_col='Role',
        facet_col_wrap=4,
        height=1000,
        color='language'  # 可选,给不同语言设置区分颜色
    )
    

这样每个职位分面就会展示该职位下Python和SQL的真实使用情况,不会出现重复的柱状图了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:30:59