From 9f30b9b7e6cff0dd9d3437c041ff37106e64ae00 Mon Sep 17 00:00:00 2001 From: Yohanna Lisnichuk Date: Sat, 10 Feb 2024 15:39:06 -0300 Subject: [PATCH] component_check_usability: move plot fuction to component_charts --- component_charts.ipynb | 61 ++++++++- component_check_usability.ipynb | 65 +--------- template_data_quality_feedback.ipynb | 61 ++++++++- template_publisher_analysis.ipynb | 61 ++++++++- template_structure_and_format_feedback.ipynb | 61 ++++++++- template_usability_checks.ipynb | 126 +++++++++---------- template_usability_checks_fieldlist.ipynb | 126 +++++++++---------- template_usability_checks_registry.ipynb | 126 +++++++++---------- 8 files changed, 424 insertions(+), 263 deletions(-) diff --git a/component_charts.ipynb b/component_charts.ipynb index 3b35545..5e326bc 100644 --- a/component_charts.ipynb +++ b/component_charts.ipynb @@ -45,7 +45,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ], "metadata": { "id": "P1aenztz1zK3" @@ -248,6 +249,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ], "metadata": { diff --git a/component_check_usability.ipynb b/component_check_usability.ipynb index 84d3162..33d1fa3 100644 --- a/component_check_usability.ipynb +++ b/component_check_usability.ipynb @@ -788,70 +788,7 @@ { "cell_type": "code", "source": [ - "if lang.value == \"English\":\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(indicator)\", frame=[None, None], sort=[{\"field\": \"calculation\"}], groupby=[\"Use case\"]\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\", type=\"quantitative\", axis=alt.Axis(title=[\"number of indicators\", \"\"], orient=\"top\", tickCount=5)\n", - " ),\n", - " y=alt.Y(\"Use case\", type=\"nominal\", sort=alt.Sort(field=\"indicator\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"calculation\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"can we calculate it?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"indicator\", type=\"nominal\"),\n", - " alt.Tooltip(\"Use case\", type=\"nominal\"),\n", - " alt.Tooltip(\"calculation\", type=\"nominal\"),\n", - " alt.Tooltip(\"missing fields\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()\n", - "\n", - "else:\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(Indicador)\",\n", - " frame=[None, None],\n", - " sort=[{\"field\": \"¿Se puede calcular?\"}],\n", - " groupby=[\"Caso de Uso\"],\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\",\n", - " type=\"quantitative\",\n", - " axis=alt.Axis(title=[\"Cantidad de indicadores\", \"\"], orient=\"top\", tickCount=5),\n", - " ),\n", - " y=alt.Y(\"Caso de Uso\", type=\"nominal\", sort=alt.Sort(field=\"Indicador\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"¿Se puede calcular?\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"¿Se puede calcular?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"Indicador\", type=\"nominal\"),\n", - " alt.Tooltip(\"Caso de uso\", type=\"nominal\"),\n", - " alt.Tooltip(\"¿Se puede calcular?\", type=\"nominal\"),\n", - " alt.Tooltip(\"Campos faltantes\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()" + "plot_usability_indicators(result_final, lang.value)" ], "metadata": { "id": "3tW-Q8-uJC89" diff --git a/template_data_quality_feedback.ipynb b/template_data_quality_feedback.ipynb index f343fbf..70f6812 100644 --- a/template_data_quality_feedback.ipynb +++ b/template_data_quality_feedback.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, diff --git a/template_publisher_analysis.ipynb b/template_publisher_analysis.ipynb index 377b04c..058b83e 100644 --- a/template_publisher_analysis.ipynb +++ b/template_publisher_analysis.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, diff --git a/template_structure_and_format_feedback.ipynb b/template_structure_and_format_feedback.ipynb index 436ebd9..f1ff1c7 100644 --- a/template_structure_and_format_feedback.ipynb +++ b/template_structure_and_format_feedback.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, diff --git a/template_usability_checks.ipynb b/template_usability_checks.ipynb index 32c06d4..a29d3ed 100644 --- a/template_usability_checks.ipynb +++ b/template_usability_checks.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, @@ -1766,70 +1825,7 @@ }, "outputs": [], "source": [ - "if lang.value == \"English\":\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(indicator)\", frame=[None, None], sort=[{\"field\": \"calculation\"}], groupby=[\"Use case\"]\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\", type=\"quantitative\", axis=alt.Axis(title=[\"number of indicators\", \"\"], orient=\"top\", tickCount=5)\n", - " ),\n", - " y=alt.Y(\"Use case\", type=\"nominal\", sort=alt.Sort(field=\"indicator\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"calculation\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"can we calculate it?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"indicator\", type=\"nominal\"),\n", - " alt.Tooltip(\"Use case\", type=\"nominal\"),\n", - " alt.Tooltip(\"calculation\", type=\"nominal\"),\n", - " alt.Tooltip(\"missing fields\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()\n", - "\n", - "else:\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(Indicador)\",\n", - " frame=[None, None],\n", - " sort=[{\"field\": \"¿Se puede calcular?\"}],\n", - " groupby=[\"Caso de Uso\"],\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\",\n", - " type=\"quantitative\",\n", - " axis=alt.Axis(title=[\"Cantidad de indicadores\", \"\"], orient=\"top\", tickCount=5),\n", - " ),\n", - " y=alt.Y(\"Caso de Uso\", type=\"nominal\", sort=alt.Sort(field=\"Indicador\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"¿Se puede calcular?\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"¿Se puede calcular?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"Indicador\", type=\"nominal\"),\n", - " alt.Tooltip(\"Caso de uso\", type=\"nominal\"),\n", - " alt.Tooltip(\"¿Se puede calcular?\", type=\"nominal\"),\n", - " alt.Tooltip(\"Campos faltantes\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()" + "plot_usability_indicators(result_final, lang.value)" ] } ], diff --git a/template_usability_checks_fieldlist.ipynb b/template_usability_checks_fieldlist.ipynb index 6515233..722764b 100644 --- a/template_usability_checks_fieldlist.ipynb +++ b/template_usability_checks_fieldlist.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, @@ -1303,70 +1362,7 @@ }, "outputs": [], "source": [ - "if lang.value == \"English\":\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(indicator)\", frame=[None, None], sort=[{\"field\": \"calculation\"}], groupby=[\"Use case\"]\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\", type=\"quantitative\", axis=alt.Axis(title=[\"number of indicators\", \"\"], orient=\"top\", tickCount=5)\n", - " ),\n", - " y=alt.Y(\"Use case\", type=\"nominal\", sort=alt.Sort(field=\"indicator\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"calculation\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"can we calculate it?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"indicator\", type=\"nominal\"),\n", - " alt.Tooltip(\"Use case\", type=\"nominal\"),\n", - " alt.Tooltip(\"calculation\", type=\"nominal\"),\n", - " alt.Tooltip(\"missing fields\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()\n", - "\n", - "else:\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(Indicador)\",\n", - " frame=[None, None],\n", - " sort=[{\"field\": \"¿Se puede calcular?\"}],\n", - " groupby=[\"Caso de Uso\"],\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\",\n", - " type=\"quantitative\",\n", - " axis=alt.Axis(title=[\"Cantidad de indicadores\", \"\"], orient=\"top\", tickCount=5),\n", - " ),\n", - " y=alt.Y(\"Caso de Uso\", type=\"nominal\", sort=alt.Sort(field=\"Indicador\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"¿Se puede calcular?\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"¿Se puede calcular?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"Indicador\", type=\"nominal\"),\n", - " alt.Tooltip(\"Caso de uso\", type=\"nominal\"),\n", - " alt.Tooltip(\"¿Se puede calcular?\", type=\"nominal\"),\n", - " alt.Tooltip(\"Campos faltantes\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()" + "plot_usability_indicators(result_final, lang.value)" ] } ], diff --git a/template_usability_checks_registry.ipynb b/template_usability_checks_registry.ipynb index 4bee278..cb1bdd3 100644 --- a/template_usability_checks_registry.ipynb +++ b/template_usability_checks_registry.ipynb @@ -163,7 +163,8 @@ "* Objects per stage\n", "* Releases by month\n", "* Objects per year\n", - "* Top buyers" + "* Top buyers\n", + "* Usability indicators" ] }, { @@ -447,6 +448,64 @@ " .properties(**chart_properties)\n", " .configure_axis(**chart_axis)\n", " .configure_view(strokeWidth=0)\n", + " )\n", + "\n", + "\n", + "def plot_usability_indicators(data, lang=\"English\"):\n", + " labels = {\n", + " \"English\": {\n", + " \"nrow\": \"row_number(indicator)\",\n", + " \"sort\": \"calculation\",\n", + " \"y_sort\": \"indicator\",\n", + " \"groupby\": \"Use case\",\n", + " \"title\": \"number of indicators\",\n", + " \"tooltip_missing\": \"Missing Fields\",\n", + " },\n", + " \"Spanish\": {\n", + " \"nrow\": \"row_number(Indicador)\",\n", + " \"sort\": \"¿Se puede calcular?\",\n", + " \"y_sort\": \"Indicador\",\n", + " \"groupby\": \"Caso de uso\",\n", + " \"title\": \"Número de indicadores\",\n", + " \"tooltip_missing\": \"Campos faltantes\",\n", + " },\n", + " }\n", + " return (\n", + " alt.Chart(data)\n", + " .transform_window(\n", + " nrow=labels[lang][\"nrow\"],\n", + " frame=[None, None],\n", + " sort=[{\"field\": labels[lang][\"sort\"]}],\n", + " groupby=[labels[lang][\"groupby\"]],\n", + " )\n", + " .mark_circle(size=250, opacity=1)\n", + " .encode(\n", + " x=alt.X(\n", + " \"nrow\",\n", + " type=\"quantitative\",\n", + " axis=alt.Axis(title=[labels[lang][\"title\"], \"\"], orient=\"top\", tickCount=5),\n", + " ),\n", + " y=alt.Y(\n", + " labels[lang][\"groupby\"],\n", + " type=\"nominal\",\n", + " sort=alt.Sort(field=labels[lang][\"y_sort\"], op=\"count\", order=\"descending\"),\n", + " ),\n", + " color=alt.Color(\n", + " labels[lang][\"sort\"],\n", + " type=\"nominal\",\n", + " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", + " legend=alt.Legend(title=[labels[lang][\"sort\"]]),\n", + " ),\n", + " tooltip=[\n", + " alt.Tooltip(labels[lang][\"y_sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"groupby\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"sort\"], type=\"nominal\"),\n", + " alt.Tooltip(labels[lang][\"tooltip_missing\"], type=\"nominal\"),\n", + " ],\n", + " )\n", + " .properties(**chart_properties)\n", + " .configure_axis(**chart_axis)\n", + " .configure_view(strokeWidth=0)\n", " )" ] }, @@ -1438,70 +1497,7 @@ }, "outputs": [], "source": [ - "if lang.value == \"English\":\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(indicator)\", frame=[None, None], sort=[{\"field\": \"calculation\"}], groupby=[\"Use case\"]\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\", type=\"quantitative\", axis=alt.Axis(title=[\"number of indicators\", \"\"], orient=\"top\", tickCount=5)\n", - " ),\n", - " y=alt.Y(\"Use case\", type=\"nominal\", sort=alt.Sort(field=\"indicator\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"calculation\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"can we calculate it?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"indicator\", type=\"nominal\"),\n", - " alt.Tooltip(\"Use case\", type=\"nominal\"),\n", - " alt.Tooltip(\"calculation\", type=\"nominal\"),\n", - " alt.Tooltip(\"missing fields\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()\n", - "\n", - "else:\n", - " alt.Chart(result_final).transform_window(\n", - " nrow=\"row_number(Indicador)\",\n", - " frame=[None, None],\n", - " sort=[{\"field\": \"¿Se puede calcular?\"}],\n", - " groupby=[\"Caso de Uso\"],\n", - " ).mark_circle(size=250, opacity=1).encode(\n", - " x=alt.X(\n", - " \"nrow\",\n", - " type=\"quantitative\",\n", - " axis=alt.Axis(title=[\"Cantidad de indicadores\", \"\"], orient=\"top\", tickCount=5),\n", - " ),\n", - " y=alt.Y(\"Caso de Uso\", type=\"nominal\", sort=alt.Sort(field=\"Indicador\", op=\"count\", order=\"descending\")),\n", - " color=alt.Color(\n", - " \"¿Se puede calcular?\",\n", - " type=\"nominal\",\n", - " scale=alt.Scale(range=[\"#fb6045\", \"#d6e100\"]),\n", - " legend=alt.Legend(title=[\"¿Se puede calcular?\"]),\n", - " ),\n", - " tooltip=[\n", - " alt.Tooltip(\"Indicador\", type=\"nominal\"),\n", - " alt.Tooltip(\"Caso de uso\", type=\"nominal\"),\n", - " alt.Tooltip(\"¿Se puede calcular?\", type=\"nominal\"),\n", - " alt.Tooltip(\"Campos faltantes\", type=\"nominal\"),\n", - " ],\n", - " ).properties(\n", - " width=600, height=350, padding=50, title=alt.TitleParams(text=\"\", subtitle=[\"\"], fontSize=18)\n", - " ).configure_axis(\n", - " titleFontSize=14, labelFontSize=14, labelPadding=5, ticks=False, domain=False\n", - " ).configure_legend(\n", - " labelFontSize=14, titleFontSize=14\n", - " ).configure_view(\n", - " strokeWidth=0\n", - " ).display()" + "plot_usability_indicators(result_final, lang.value)" ] } ],