尝试获取 plotly treemap 和 plotly sunburst 时的白色输出

White-out output when trying to get the ploty treemap and plotly sunburst

我想创建一个树状图和一个数据结构的旭日图,以便安排数据的层次结构。

数据结构存储在 excel 文件中的两列 'Parent' 和 'Child' 下。此数据被提取到名为 my_data 的 pandas DataFrame 中。这里我已经将数据转换为列表:

my_data_parent = ['', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'F', 'G', 'G', 'G', 'H', 'AV', 'CF', 'CF', 'EL', 'EL', 'EV', 'EV', 'MT', 'DI', 'DI', 'DI', 'DI', 'I', 'I', 'I', 'J', 'EJ', 'EJ', 'EJ', 'EJ', 'K', 'I2', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'N', 'N', 'P', 'P', 'P4', 'R', 'Q', 'Q', 'Q', 'S', 'S', 'S', 'S', 'S', 'S2', 'S2', 'S2', 'S2', 'S2', 'S2', 'S3', 'S3', 'S3', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S6', 'S6', 'S6', 'S6', 'S6', 'S6', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S8', 'S8', 'S9', 'S9', 'S9', 'S9', 'S10', 'S10', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S12', 'S12', 'S13', 'S13', 'S13', 'S13', 'S14', 'S14', 'S14', 'S14', 'S14', 'S14', 'S15', 'T', 'T1', 'T3', 'T3', 'T3', 'T3', 'T5', 'T5', 'T5', 'T6', 'T6', 'T14', 'U', 'U1', 'V', 'V', 'V5', 'V6', 'V6', 'V6', 'V7', 'V7', 'V7', 'V9', 'V9', 'V11', 'V11', 'V11', 'V11', 'W', 'W', 'X', 'X', 'X']

my_data_child = ['A', 'B', 'C', 'D', 'E', 'CS', 'SC', 'CC', 'BU', 'F', 'EA', 'G', 'H', 'Nu', 'AV', 'CF', 'EL', 'EV', 'MT', 'DTT', 'DI', 'I', 'J', 'EI', 'EJ', 'K', 'F1', 'F2', 'F3', 'F4', 'I1', 'I2', 'G1', 'L', 'M', 'N', 'N1', 'P', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'R', 'Q', 'Q1', 'Q2', 'Q3', 'Q4', 'S', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6', 'S7', 'S8', 'S9', 'S10', 'S11', 'S12', 'S13', 'S14', 'S15', 'T', 'T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12', 'T13', 'T14', 'T15', 'T16', 'T17', 'T18', 'T19', 'T20', 'T21', 'T22', 'T23', 'T24', 'T25', 'T26', 'T27', 'T28', 'T29', 'T30', 'T31', 'T32', 'T33', 'T34', 'T35', 'T36', 'T37', 'T38', 'T39', 'T40', 'T41', 'T42', 'T43', 'T44', 'T45', 'T46', 'T47', 'T48', 'T49', 'T50', 'T51', 'T52', 'T53', 'T54', 'T55', 'T56', 'T57', 'T58', 'T59', 'T60', 'T61', 'T62', 'T63', 'T64', 'U', 'U1', 'U2', 'U3', 'U4', 'U5', 'U6', 'U7', 'U8', 'U9', 'U10', 'U11', 'U12', 'U13', 'U14', 'U15', 'U16', 'U17', 'U18', 'U19', 'U20', 'U21', 'U22', 'U23', 'U24', 'U25', 'U26', 'U27', 'U28', 'U29', 'U30', 'U31', 'V', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V90', 'V9', 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19', 'V20', 'W', 'X', 'X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8', 'X9']

令人惊讶的是,除了我需要的那个以外,下面的一段代码适用于所有其他 excel 文件(父数据和子数据)。执行没有错误,但是代码的输出是白色的 space。我把树形图写到html,即使那里有白色space,而且在我下载的jpg图像中也是如此。

my_labels = my_data_child
my_parents = my_data_parent

my_parents[0]=''
my_labels[0]=my_parents[1]

fig = go.Figure(go.Treemap(
    labels=np.array(my_labels),
    parents=np.array(my_parents),
    hoverinfo= 'text',
    maxdepth=2,
    #marker=dict(
     #   colorscale='RdBu',
     #   cmid=0.5),
))

fig.update_layout(margin = dict(t=0, l=0, r=0, b=0),
                 uniformtext=dict(minsize=12, 
                                 # mode='show',
                                 ),
                  width=1200, height=800
                 )
fig.show()
fig.write_html("Data_treemap.html")

生成朝阳的代码类似。这不是我正在使用的确切数据。但它具有完全相同的结构。对于轨迹数据,我可以获得树状图和旭日图,但不能获取实际数据。我投入了一些时间来尝试所有组合以使其发挥作用。希望在这里得到一些帮助。

由于您包含的示例数据与您的实际数据具有相同的结构,但是示例数据可用于生成树状图,而您的实际数据不起作用,我想不出任何解释,除了你的实际数据一定有错别字。

例如,您的代码包含以下列表:

my_data_parent = ['', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C', 'C', 'D', 'D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'F', 'G', 'G', 'G', 'H', 'AV', 'CF', 'CF', 'EL', 'EL', 'EV', 'EV', 'MT', 'DI', 'DI', 'DI', 'DI', 'I', 'I', 'I', 'J', 'EJ', 'EJ', 'EJ', 'EJ', 'K', 'I2', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'N', 'N', 'P', 'P', 'P4', 'R', 'Q', 'Q', 'Q', 'S', 'S', 'S', 'S', 'S', 'S2', 'S2', 'S2', 'S2', 'S2', 'S2', 'S3', 'S3', 'S3', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S5', 'S6', 'S6', 'S6', 'S6', 'S6', 'S6', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S7', 'S8', 'S8', 'S9', 'S9', 'S9', 'S9', 'S10', 'S10', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S11', 'S12', 'S12', 'S13', 'S13', 'S13', 'S13', 'S14', 'S14', 'S14', 'S14', 'S14', 'S14', 'S15', 'T', 'T1', 'T3', 'T3', 'T3', 'T3', 'T5', 'T5', 'T5', 'T6', 'T6', 'T14', 'U', 'U1', 'V', 'V', 'V5', 'V6', 'V6', 'V6', 'V7', 'V7', 'V7', 'V9', 'V9', 'V11', 'V11', 'V11', 'V11', 'W', 'W', 'X', 'X', 'X']

my_data_child = ['A', 'B', 'C', 'D', 'E', 'CS', 'SC', 'CC', 'BU', 'F', 'EA', 'G', 'H', 'Nu', 'AV', 'CF', 'EL', 'EV', 'MT', 'DTT', 'DI', 'I', 'J', 'EI', 'EJ', 'K', 'F1', 'F2', 'F3', 'F4', 'I1', 'I2', 'G1', 'L', 'M', 'N', 'N1', 'P', 'P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'R', 'Q', 'Q1', 'Q2', 'Q3', 'Q4', 'S', 'S1', 'S2', 'S3', 'S4', 'S5', 'S6', 'S7', 'S8', 'S9', 'S10', 'S11', 'S12', 'S13', 'S14', 'S15', 'T', 'T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12', 'T13', 'T14', 'T15', 'T16', 'T17', 'T18', 'T19', 'T20', 'T21', 'T22', 'T23', 'T24', 'T25', 'T26', 'T27', 'T28', 'T29', 'T30', 'T31', 'T32', 'T33', 'T34', 'T35', 'T36', 'T37', 'T38', 'T39', 'T40', 'T41', 'T42', 'T43', 'T44', 'T45', 'T46', 'T47', 'T48', 'T49', 'T50', 'T51', 'T52', 'T53', 'T54', 'T55', 'T56', 'T57', 'T58', 'T59', 'T60', 'T61', 'T62', 'T63', 'T64', 'U', 'U1', 'U2', 'U3', 'U4', 'U5', 'U6', 'U7', 'U8', 'U9', 'U10', 'U11', 'U12', 'U13', 'U14', 'U15', 'U16', 'U17', 'U18', 'U19', 'U20', 'U21', 'U22', 'U23', 'U24', 'U25', 'U26', 'U27', 'U28', 'U29', 'U30', 'U31', 'V', 'V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V90', 'V9', 'V10', 'V11', 'V12', 'V13', 'V14', 'V15', 'V16', 'V17', 'V18', 'V19', 'V20', 'W', 'X', 'X1', 'X2', 'X3', 'X4', 'X5', 'X6', 'X7', 'X8', 'X9']

... 生成此图:

但是如果我通过在其中一个父标签中插入 space 来创建拼写错误

my_data_parent = ['', 'A', 'A ', 'A',...]

然后我确实得到了一个完全空白的白色图,因为 parent-child 层次结构对绘图不再有意义。

在这一点上,它更多的是数据调试问题,而不是 plotly-specific,但我鼓励您查看实际数据并确保没有这样的拼写错误。您说您手动 将您的实际数据映射到您的示例数据 - 也许您将正确的标签和拼写错误的标签映射到相同的值。

前进的一种方法可能是使用 python 执行从实际标签到一些新标签的映射,看看会发生什么。