python - Python plotly sunburst图打开空白页面
问题描述
我正在尝试为 plotly 创建一个旭日形图,但是当我使用 fig.show() 运行它时,它会打开一个完全空白的页面,并且在任何地方都没有错误消息?我正在使用的代码如下,感谢我能得到的任何帮助。
import plotly.graph_objects as go
fig = go.Figure(go.Sunburst(
labels=['Biology', 'Economics', 'Physics', 'Chemistry', 'Psychology', 'Sociology', 'Medicine', 'Social_psychology', 'Geology', 'Mathematics', 'Classical_mechanics', 'Ecology', 'Fishery', 'Engineering', 'Molecular_biology', 'Computer_science', 'Biochemistry', 'Fisheries_management', 'Quantum_electrodynamics'],
parents=['Science_and_Health', 'Business_and_Law', 'Science_and_Health', 'Science_and_Health', 'Science_and_Health', 'Humanities_and_Social_Science', 'Science_and_Health', 'Humanities_and_Social_Science', 'Humanities_and_Social_Science', 'Business_and_Law', 'Technology', 'Humanities_and_Social_Science', 'Humanities_and_Social_Science', 'Technology', 'Science_and_Health', 'Technology', 'Science_and_Health', 'Humanities_and_Social_Science', 'Science_and_Health'],
values=[40, 37, 31, 26, 20, 19, 19, 18, 18, 16, 15, 12, 12, 11, 11, 10, 10, 10, 10]
))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0))
fig.show()
解决方案
您当前代码未显示的原因是您的父类别本身没有父类别。您需要将父类别列表添加到标签中,并将相同数量的空字符串添加到父类中。对于旭日形图,空字符串被视为根。
对于您的示例,它看起来像这样:
import plotly.graph_objects as go
fig = go.Figure(go.Sunburst(
labels=['Business_and_Law', 'Technology', 'Humanities_and_Social_Science', 'Science_and_Health', 'Biology', 'Economics', 'Physics', 'Chemistry', 'Psychology', 'Sociology', 'Medicine', 'Social_psychology',
'Geology', 'Mathematics', 'Classical_mechanics', 'Ecology', 'Fishery', 'Engineering', 'Molecular_biology', 'Computer_science', 'Biochemistry', 'Fisheries_management', 'Quantum_electrodynamics'],
parents=['', '', '', '', 'Science_and_Health', 'Business_and_Law', 'Science_and_Health', 'Science_and_Health', 'Science_and_Health', 'Humanities_and_Social_Science', 'Science_and_Health', 'Humanities_and_Social_Science', 'Humanities_and_Social_Science',
'Business_and_Law', 'Technology', 'Humanities_and_Social_Science', 'Humanities_and_Social_Science', 'Technology', 'Science_and_Health', 'Technology', 'Science_and_Health', 'Humanities_and_Social_Science', 'Science_and_Health'],
values=[0, 0, 0, 0, 40, 37, 31, 26, 20, 19, 19, 18, 18,
16, 15, 12, 12, 11, 11, 10, 10, 10, 10]
))
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0))
fig.show()
我将父类别的值全部设为 0,但您可能希望将这些值实现为它们下面的子类别的总和,或者对您的数据更有意义的其他数字。
我希望这有帮助!
推荐阅读
- ruby-on-rails - 如何在 Rails 4 中过滤索引以获取真值
- jenkins - 从 curl 发送 XML 结果的最佳方式
- node.js - 将node.js配置文件放在s3而不是同一服务器的最佳实践是什么
- arrays - 如何在 Ocaml 中打印一个单位?[初学者]
- android - android gradle 插件中的错误:它必须依赖于 com.google.firebase:firebase-core 才能使 firebase 服务按预期工作
- c - 如何指示可以使用内联 ASM 参数*指向*的内存?
- spring-boot - 建议不适用于单元测试
- java - WildFly App Dev:如何在开发时反映运行时类路径?
- scala - 为什么在 val 变量上使用 += 和 a=x+y 会出现不同的错误消息?
- java - 在循环中使用线程时出现异常