From 77e52fd3e27b4a90e5c91aa8cc713a41e2840bcc Mon Sep 17 00:00:00 2001 From: Philipp Horstenkamp Date: Mon, 15 Jan 2024 21:10:32 +0100 Subject: [PATCH] Added a nan handling for network kpis and an scaler. --- .../utils/networkx/network_2d.py | 9 ++++++++- .../utils/networkx/network_3d.py | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/aki_prj23_transparenzregister/utils/networkx/network_2d.py b/src/aki_prj23_transparenzregister/utils/networkx/network_2d.py index c6ee701..8520bb4 100644 --- a/src/aki_prj23_transparenzregister/utils/networkx/network_2d.py +++ b/src/aki_prj23_transparenzregister/utils/networkx/network_2d.py @@ -128,7 +128,14 @@ def create_2d_graph( # noqa PLR0913 # Highlight the Node Size with regard to the selected Metric. if metric not in ("None", "Ohne"): - node_trace.marker.size = list(np.sqrt(metrics[metric]) * 200) + sqrt = np.sqrt(metrics[metric].fillna(0)) + min_value = sqrt.min() + max_value = sqrt.max() + if min_value == max_value or min_value is max_value: + min_value = 0 + max_value = 0.5 + results = (((sqrt - min_value) / (max_value - min_value)) + 0.25) * 20 + node_trace.marker.size = list(results) # Add Relation_Type as a Description for the edges. if edge_annotation is True: # this code be moved and used as hover data diff --git a/src/aki_prj23_transparenzregister/utils/networkx/network_3d.py b/src/aki_prj23_transparenzregister/utils/networkx/network_3d.py index e821a77..d019ccd 100644 --- a/src/aki_prj23_transparenzregister/utils/networkx/network_3d.py +++ b/src/aki_prj23_transparenzregister/utils/networkx/network_3d.py @@ -174,7 +174,14 @@ def create_3d_graph( # noqa : PLR0913 # Highlight the Node Size with regard to the selected Metric. if metric not in ("None", "Ohne"): - node_trace.marker.size = list(np.cbrt(metrics[metric]) * 200) + sqrt = np.cbrt(metrics[metric].fillna(0)) + min_value = sqrt.min() + max_value = sqrt.max() + if min_value == max_value or min_value is max_value: + min_value = 0 + max_value = 1 + results = (((sqrt - min_value) / (max_value - min_value)) + 0.25) * 20 + node_trace.marker.size = list(results) # Set the Color and width of Edges for better highlighting. edge_trace.line = {"color": "rgb(255,105,180)", "width": edge_thickness}