From a6db836c4c21d3bf9b8ef2a275ae834a4cf103f7 Mon Sep 17 00:00:00 2001 From: JoshuaNgXY Date: Thu, 25 Jul 2024 14:20:47 -0700 Subject: [PATCH 1/6] Update pourbaix.py Removing x, y, and z labels on hovertext of heatmaps --- crystal_toolkit/components/pourbaix.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index 836d8d04..b486a9ae 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -119,7 +119,7 @@ class PourbaixDiagramComponent(MPComponent): # Deprecated. This method returns a figure with Pourbaix domains as "shapes" and labels # as "annotations." The new figure method instead returns a Pourbaix diagram with # domains and labels as independent traces, so that they can be interacted with and - # placed ona legend. + # placed on a legend. # # Static method for getting plotly figure from a Pourbaix diagram. # @@ -454,7 +454,7 @@ def get_text_size(available_vertical_space): ) # Generate hoverinfo - hovertexts = [] + hoverlabel = [] for ph_val, v_val, de_val in zip( ph_mesh.ravel(), v_mesh.ravel(), decomposition_e.ravel() ): @@ -463,9 +463,9 @@ def get_text_size(available_vertical_space): f"ph={ph_val:.2f}", f"V={v_val:.2f}", ] - hovertext = "
".join(hovertext) - hovertexts.append(hovertext) - hovertexts = np.reshape(hovertexts, list(decomposition_e.shape)) + hovertext = "
".join(hovertext) + hoverlabel.append(hovertext) + hoverlabel = np.reshape(hoverlabel, list(decomposition_e.shape)) # Enforce decomposition limit energy decomposition_e = np.min( @@ -491,7 +491,8 @@ def get_text_size(available_vertical_space): line_smoothing=0, line_width=0, # contours_coloring="heatmap", - text=hovertexts, + text=hoverlabel, + hoverinfo = "text", name=f"{heatmap_formula} ({heatmap_entry.entry_id}) Heatmap", showlegend=True, ) From 1c17251b0246a39093e4c055e10f9b35152edf53 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 22:40:13 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- crystal_toolkit/components/pourbaix.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index b486a9ae..8760d321 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -454,7 +454,7 @@ def get_text_size(available_vertical_space): ) # Generate hoverinfo - hoverlabel = [] + hoverlabel = [] for ph_val, v_val, de_val in zip( ph_mesh.ravel(), v_mesh.ravel(), decomposition_e.ravel() ): @@ -463,7 +463,7 @@ def get_text_size(available_vertical_space): f"ph={ph_val:.2f}", f"V={v_val:.2f}", ] - hovertext = "
".join(hovertext) + hovertext = "
".join(hovertext) hoverlabel.append(hovertext) hoverlabel = np.reshape(hoverlabel, list(decomposition_e.shape)) @@ -492,7 +492,7 @@ def get_text_size(available_vertical_space): line_width=0, # contours_coloring="heatmap", text=hoverlabel, - hoverinfo = "text", + hoverinfo="text", name=f"{heatmap_formula} ({heatmap_entry.entry_id}) Heatmap", showlegend=True, ) From 24f1edb1bab64ed6b53e8287862cc607b6ca0d00 Mon Sep 17 00:00:00 2001 From: JoshuaNgXY Date: Mon, 29 Jul 2024 11:49:55 -0700 Subject: [PATCH 3/6] Update pourbaix.py Small color update to ion/default color Removed extra box from hovertext of heatmap off Pourbaix plots. --- crystal_toolkit/components/pourbaix.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index 8760d321..dd211107 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -334,7 +334,7 @@ def get_figure( if not heatmap_entry: if legend_entry == "Ion" or legend_entry == "Unknown": - fillcolor = "rgb(255,255,250,1)" # same color as old website + fillcolor = "rgb(255,252,255,1)" # New purple white color elif legend_entry == "Mixed Ion": fillcolor = "rgb(255,255,240,1)" elif legend_entry == "Solid": @@ -356,6 +356,7 @@ def get_figure( # legendgrouptitle={"text": legend_entry}, name=legend_entry, text=f"{clean_formula} ({entry.entry_id})", + hoverinfo = "text", marker={"color": "Black"}, line={"color": "Black", "width": 0}, mode="lines", From bd578d744c170ed05f957ce5df6f351b0a6e1cdf Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:50:03 +0000 Subject: [PATCH 4/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- crystal_toolkit/components/pourbaix.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index dd211107..362df483 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -356,7 +356,7 @@ def get_figure( # legendgrouptitle={"text": legend_entry}, name=legend_entry, text=f"{clean_formula} ({entry.entry_id})", - hoverinfo = "text", + hoverinfo="text", marker={"color": "Black"}, line={"color": "Black", "width": 0}, mode="lines", From 608399e491d13cbdd8d876e92cab68106282b01b Mon Sep 17 00:00:00 2001 From: JoshuaNgXY Date: Mon, 29 Jul 2024 15:56:04 -0700 Subject: [PATCH 5/6] Update Colors pourbaix.py Updated some whites to be a bit further offwhite so that it contrasts with the white background. Updated the heatmap color scheme to include the full range but use an exponentially scaled color scheme based off magma. --- crystal_toolkit/components/pourbaix.py | 28 +++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index 362df483..d4490a09 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -334,7 +334,7 @@ def get_figure( if not heatmap_entry: if legend_entry == "Ion" or legend_entry == "Unknown": - fillcolor = "rgb(255,252,255,1)" # New purple white color + fillcolor = "rgb(255,245,255,1)" # New purple white color elif legend_entry == "Mixed Ion": fillcolor = "rgb(255,255,240,1)" elif legend_entry == "Solid": @@ -377,9 +377,9 @@ def get_figure( path += "Z" # stable entries are black with default color scheme, - # so use white lines instead + # so use off-white lines instead line = ( - {"color": "White", "width": 4} + {"color": "rgba(255,235,255,1)", "width": 4} if heatmap_entry else {"color": "Black", "width": 1} ) @@ -469,9 +469,9 @@ def get_text_size(available_vertical_space): hoverlabel = np.reshape(hoverlabel, list(decomposition_e.shape)) # Enforce decomposition limit energy - decomposition_e = np.min( - [decomposition_e, np.ones(decomposition_e.shape)], axis=0 - ) + # decomposition_e = np.min( + # [decomposition_e, np.ones(decomposition_e.shape)], axis=0 + # ) heatmap_formula = unicodeify( Composition(heatmap_entry.composition).reduced_formula @@ -485,9 +485,19 @@ def get_text_size(available_vertical_space): "title": "∆Gpbx (eV/atom)", "titleside": "right", }, - colorscale=PourbaixDiagramComponent.colorscale, # or magma - zmin=0, - zmax=1, + colorscale= [ [0, '#000004'], + [0.031, '#180f3d'], + [0.044, '#440f76'], + [0.063, '#721f81'], + [0.088, '#9e2f7f'], + [0.125, '#cd4071'], + [0.177, '#f1605d'], + [0.25, '#fd9668'], + [0.354, '#feca8d'], + [0.5, '#fcfdbf'], + [1, '#fcfdbf'] ], # Custom Magma built exponentially rather than linearly + ncontours= 50, + connectgaps=True, line_smoothing=0, line_width=0, From 49a1345b05178cd5bd70eca4cb5d58cedb10aedc Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:56:11 +0000 Subject: [PATCH 6/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- crystal_toolkit/components/pourbaix.py | 27 +++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/crystal_toolkit/components/pourbaix.py b/crystal_toolkit/components/pourbaix.py index d4490a09..d5583841 100644 --- a/crystal_toolkit/components/pourbaix.py +++ b/crystal_toolkit/components/pourbaix.py @@ -485,19 +485,20 @@ def get_text_size(available_vertical_space): "title": "∆Gpbx (eV/atom)", "titleside": "right", }, - colorscale= [ [0, '#000004'], - [0.031, '#180f3d'], - [0.044, '#440f76'], - [0.063, '#721f81'], - [0.088, '#9e2f7f'], - [0.125, '#cd4071'], - [0.177, '#f1605d'], - [0.25, '#fd9668'], - [0.354, '#feca8d'], - [0.5, '#fcfdbf'], - [1, '#fcfdbf'] ], # Custom Magma built exponentially rather than linearly - ncontours= 50, - + colorscale=[ + [0, "#000004"], + [0.031, "#180f3d"], + [0.044, "#440f76"], + [0.063, "#721f81"], + [0.088, "#9e2f7f"], + [0.125, "#cd4071"], + [0.177, "#f1605d"], + [0.25, "#fd9668"], + [0.354, "#feca8d"], + [0.5, "#fcfdbf"], + [1, "#fcfdbf"], + ], # Custom Magma built exponentially rather than linearly + ncontours=50, connectgaps=True, line_smoothing=0, line_width=0,