Python plotly sunburst graph opens empty page

Python plotly sunburst graph opens empty page

我正在尝试为 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()

您当前代码未显示的原因是您的父类别本身没有父类别。您需要将父类别列表添加到标签之前,并将相同数量的空字符串添加到父类别 class。对于旭日图,空字符串被视为根。

对于您的示例,它看起来像这样:

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,但您可能希望将这些值实现为它们下面的子类别的总和,或者其他一些对您的数据更有意义的数字。

希望对您有所帮助!