Changeset View
Changeset View
Standalone View
Standalone View
swh/scanner/plot.py
Show First 20 Lines • Show All 244 Lines • ▼ Show 20 Lines | def sunburst(directories: Dict[PosixPath, Tuple[int, int]], root: PosixPath) -> None: | ||||
levels_columns = ["lev" + str(i) for i in range(max_depth)] | levels_columns = ["lev" + str(i) for i in range(max_depth)] | ||||
df_columns = levels_columns + metrics_columns | df_columns = levels_columns + metrics_columns | ||||
dirs_df = generate_df_from_dirs(directories, df_columns, root, max_depth) | dirs_df = generate_df_from_dirs(directories, df_columns, root, max_depth) | ||||
hierarchical_df = build_hierarchical_df( | hierarchical_df = build_hierarchical_df( | ||||
dirs_df, levels_columns, metrics_columns, str(root) | dirs_df, levels_columns, metrics_columns, str(root) | ||||
) | ) | ||||
known_avg = dirs_df["known"].sum() / dirs_df["contents"].sum() | |||||
fig = go.Figure() | fig = go.Figure() | ||||
fig.add_trace( | fig.add_trace( | ||||
go.Sunburst( | go.Sunburst( | ||||
labels=hierarchical_df["id"], | labels=hierarchical_df["id"], | ||||
parents=hierarchical_df["parent"], | parents=hierarchical_df["parent"], | ||||
values=hierarchical_df["contents"], | values=hierarchical_df["contents"], | ||||
branchvalues="total", | branchvalues="total", | ||||
marker=dict( | marker=dict( | ||||
colors=hierarchical_df["known"], colorscale="RdBu", cmid=known_avg | colors=hierarchical_df["known"], | ||||
colorscale="matter", | |||||
cmid=50, | |||||
showscale=True, | |||||
), | ), | ||||
hovertemplate="""<b>%{label}</b> | hovertemplate="""<b>%{label}</b> | ||||
<br>Files: %{value} | <br>Files: %{value} | ||||
<br>Known: <b>%{color:.2f}%</b>""", | <br>Known: <b>%{color:.2f}%</b>""", | ||||
name="", | name="", | ||||
) | ) | ||||
) | ) | ||||
offline.plot(fig, filename="sunburst.html") | offline.plot(fig, filename="sunburst.html") |