plotly中ff.create_distplot设置rug_text后技能名称文本不显示如何解决
问题根因
ff.create_distplot的rug_text参数要求传入的嵌套列表中,每个子列表的长度必须和对应的数据序列的样本量完全一致。你当前两组数据序列的样本量均为94条,但传入的rug_text两个子列表分别只有11和8个元素,长度不匹配导致Plotly无法将自定义文本和rug上的点一一绑定,只能默认展示数值内容。
解决方案
你需要先根据每个样本点的数值对应的技能,补全文本列表,保证每个子列表长度和对应数据序列的样本量一致,示例调整逻辑如下:
# 先建立分值到技能名称的映射关系,可根据你的实际对应规则调整 ml_score_skill_map = { 46.0: 'REST', 78.0: 'Linux', 12.0: 'Test-driven Development (TDD)', 93.0: 'PostgreSQL', 42.0: 'Python', 50.0: 'Flask', 94.0: 'JavaScript', 59.0: 'jQuery' # 补全所有分值对应的技能即可 } py_score_skill_map = { 46.0: 'Linux', 12.0: 'PostgreSQL', 62.0: 'Python', 83.0: 'Flask', 88.0: 'Object-oriented Programming (OOP)', 42.0: 'Machine Learning', 55.0: 'Data Science', 60.0: 'Apache Spark', 0.0: '对应技能名', 19.0: '对应技能名', 50.0: '对应技能名' # 补全所有分值对应的技能即可 } # 生成和样本长度完全匹配的rug_text rug_text = [ [ml_score_skill_map[score] for score in sample_df["machine learning engineer"]], [py_score_skill_map[score] for score in sample_df["python developer"]] ] # 再调用绘图方法即可正常显示自定义技能文本 colors = ["#333F44", "#37AA9C"] fig = ff.create_distplot( [ np.array(sample_df["machine learning engineer"]), np.array(sample_df["python developer"]), ], sample_df.columns, show_hist=False, rug_text=rug_text, colors=colors, ) fig.update_layout(title_text="DistPlot") fig.show()
内容的提问来源于stack exchange,提问作者Erin
相关产品推荐
相关产品推荐

