From 09d83e9ad2b992fc0a76e79be4c60b6f101d2512 Mon Sep 17 00:00:00 2001 From: juacrumar Date: Tue, 3 Oct 2023 10:38:42 +0200 Subject: [PATCH 1/7] use get_next_color instead of prop_cycler we were using a private undocumented feature of matplotlib (see for instance https://github.com/matplotlib/matplotlib/issues/26831) which is removed in matplotlib 3.7, this change is still using an undocumented feature but since we are only using the cycler to get the colors, at least now it is explicit and hopefully a bit more robust --- validphys2/src/validphys/deltachi2.py | 4 +--- validphys2/src/validphys/pdfplots.py | 13 ++++--------- validphys2/src/validphys/plotutils.py | 3 +-- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/validphys2/src/validphys/deltachi2.py b/validphys2/src/validphys/deltachi2.py index 3769712cba..a630232e6e 100644 --- a/validphys2/src/validphys/deltachi2.py +++ b/validphys2/src/validphys/deltachi2.py @@ -219,9 +219,7 @@ def draw(self, pdf, grid, flstate): errorstd = stats.std_error() # color cycle iterable - pcycler = ax._get_lines.prop_cycler - next_prop = next(pcycler) - color = next_prop["color"] + color = ax._get_lines.get_next_color() xgrid = grid.xgrid # the division by 2 is equivalent to considering the complete 1-sigma band (2 * error_std) error68 = (error68up - error68down) / 2.0 diff --git a/validphys2/src/validphys/pdfplots.py b/validphys2/src/validphys/pdfplots.py index 3c6a74fffd..71ccd1001b 100644 --- a/validphys2/src/validphys/pdfplots.py +++ b/validphys2/src/validphys/pdfplots.py @@ -192,8 +192,7 @@ def _warn_any_pdf_not_montecarlo(pdfs): class ReplicaPDFPlotter(PDFPlotter): def draw(self, pdf, grid, flstate): ax = flstate.ax - next_prop = next(ax._get_lines.prop_cycler) - color = next_prop['color'] + color = ax._get_lines.get_next_color() flavour_grid = grid.select_flavour(flstate.flindex) stats = flavour_grid.grid_values gv = stats.data @@ -345,9 +344,7 @@ def draw(self, pdf, grid, flstate): ax = flstate.ax flindex = flstate.flindex - pcycler = ax._get_lines.prop_cycler - next_prop = next(pcycler) - color = next_prop['color'] + color = ax._get_lines.get_next_color() # The grid for the distance is (1, flavours, points) # take only the flavour we are interested in @@ -445,7 +442,6 @@ def draw(self, pdf, grid, flstate): # Take only the flavours we are interested in stats = grid.select_flavour(flstate.flindex).grid_values - next_prop = next(ax._get_lines.prop_cycler) cv = stats.central_value() xgrid = grid.xgrid # Ignore spurious normalization warnings @@ -455,7 +451,7 @@ def draw(self, pdf, grid, flstate): # http://stackoverflow.com/questions/5195466/matplotlib-does-not-display-hatching-when-rendering-to-pdf hatch = next(hatchit) - color = next_prop['color'] + color = ax._get_lines.get_next_color() (cvline,) = ax.plot(xgrid, cv, color=color) if pdf in self.pdfs_noband: labels.append(pdf.label) @@ -1178,8 +1174,7 @@ def draw(self, pdf, grid, flstate): labels = flstate.labels handles = flstate.handles ax = flstate.ax - next_prop = next(ax._get_lines.prop_cycler) - color = next_prop['color'] + color = ax._get_lines.get_next_color() stats = grid.select_flavour(flstate.flindex).grid_values gv = stats.data ax.plot(grid.xgrid, gv.T, alpha=0.2, linewidth=0.5, color=color, zorder=1) diff --git a/validphys2/src/validphys/plotutils.py b/validphys2/src/validphys/plotutils.py index 4d8e6d1b5e..ef5e6d3777 100644 --- a/validphys2/src/validphys/plotutils.py +++ b/validphys2/src/validphys/plotutils.py @@ -550,8 +550,7 @@ def kde_plot(a, height=0.05, ax=None, label=None, color=None, max_marks=100000): a = np.asarray(a).ravel() if color is None: - next_prop = next(ax._get_lines.prop_cycler) - color = next_prop["color"] + color = ax._get_lines.get_next_color() kde_func = stats.gaussian_kde(a, bw_method="silverman") kde_x = np.linspace(*expand_margin(np.min(a), np.max(a), 1.3), 100) ax.plot(kde_x, kde_func(kde_x), label=label, color=color) From bc080926c26dbaed95b1fe3900f8427ec23b269a Mon Sep 17 00:00:00 2001 From: juacrumar Date: Tue, 3 Oct 2023 13:40:31 +0200 Subject: [PATCH 2/7] fix check for montecarlo/symmhessian --- validphys2/src/validphys/checks.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/validphys2/src/validphys/checks.py b/validphys2/src/validphys/checks.py index a96e186921..f0c09ddb2f 100644 --- a/validphys2/src/validphys/checks.py +++ b/validphys2/src/validphys/checks.py @@ -44,8 +44,7 @@ def check_pdf_is_montecarlo(ns, **kwargs): @make_argcheck -def check_pdf_is_montecarlo_or_symmhessian(ns, **kwargs): - pdf = ns['pdf'] +def check_pdf_is_montecarlo_or_symmhessian(pdf, **kwargs): etype = pdf.error_type check( etype in {'replicas', 'symhessian'}, From e4d1f1e0ca6b43bfc0adea4f463dd2f1a9ef578c Mon Sep 17 00:00:00 2001 From: juacrumar Date: Tue, 3 Oct 2023 15:31:44 +0200 Subject: [PATCH 3/7] pin matplotlib < 3.8 --- conda-recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml index d2c41ea803..7de47f8c79 100644 --- a/conda-recipe/meta.yaml +++ b/conda-recipe/meta.yaml @@ -38,7 +38,7 @@ requirements: - pkg-config - python # requirements for validphys - reportengine >=0.30.25 # see https://github.com/NNPDF/reportengine - - matplotlib >=3.3.0 + - matplotlib >=3.3.0,<3.8 - blessings >=1.7 - scipy >=0.19.1 - pandas <2 # In principle the code runs with pandas 2 but the results (plots, tables, formats) are untested From 1c69689f047ed53539413c7ae15551cb112d8f2f Mon Sep 17 00:00:00 2001 From: juacrumar Date: Tue, 3 Oct 2023 16:51:40 +0200 Subject: [PATCH 4/7] update example --- validphys2/examples/API_example.ipynb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/validphys2/examples/API_example.ipynb b/validphys2/examples/API_example.ipynb index 28f0d1abf6..e7b020651e 100644 --- a/validphys2/examples/API_example.ipynb +++ b/validphys2/examples/API_example.ipynb @@ -323,8 +323,8 @@ "\n", "fig, ax = plt.subplots()\n", "\n", - "color30 = next(ax._get_lines.prop_cycler)['color']\n", - "color31 = next(ax._get_lines.prop_cycler)['color']\n", + "color30 = ax._get_lines.get_next_color()\n", + "color31 = ax._get_lines.get_next_color()\n", "\n", "ax.plot(*res30._rawdata[:2,:], 'o', label=pdfs[0], color=color30)\n", "ax.plot(*res31._rawdata[:2,:], 'o', label=pdfs[1], color=color31)\n", @@ -377,7 +377,7 @@ "metadata": { "anaconda-cloud": {}, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -391,9 +391,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.4" + "version": "3.10.13" } }, "nbformat": 4, - "nbformat_minor": 1 + "nbformat_minor": 4 } From f68a74bf17454bba59d7c0401ee0ba9e2b74aeb7 Mon Sep 17 00:00:00 2001 From: juacrumar Date: Wed, 4 Oct 2023 11:44:24 +0200 Subject: [PATCH 5/7] update the jupyter example to use the recommended resources and latest api --- validphys2/examples/API_example.ipynb | 49 ++++++++++++++++----------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/validphys2/examples/API_example.ipynb b/validphys2/examples/API_example.ipynb index e7b020651e..a4f2dfe3c1 100644 --- a/validphys2/examples/API_example.ipynb +++ b/validphys2/examples/API_example.ipynb @@ -29,14 +29,14 @@ "outputs": [], "source": [ "l = Loader()\n", - "thno = 53\n", - "dsname = 'ATLASWZTOT13TEV81PB'\n", + "thno = 399\n", + "dsname = 'ATLAS_WZ_TOT_13TEV'\n", "cfactors = ['NRM', 'QCD']\n", - "pdfs = ['NNPDF30_nnlo_as_0118', 'NNPDF31_nnlo_as_0118']\n", + "pdfs = ['NNPDF40_nnlo_lowprecision', 'NNPDF40_nnlo_as_01180']\n", "inp = {\n", " 'pdfs': pdfs,\n", - " 'dataset_input': {'dataset': dsname, 'cfac': cfactors}, 'theoryid': 53,\n", - " 'use_cuts': 'nocuts'\n", + " 'dataset_input': {'dataset': dsname, 'cfac': cfactors}, 'theoryid': 399,\n", + " 'use_cuts': 'internal'\n", "}" ] }, @@ -44,7 +44,18 @@ "cell_type": "code", "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "LHAPDF 6.5.3 loading all 51 PDFs in set NNPDF40_nnlo_lowprecision\n", + "NNPDF40_nnlo_lowprecision, version 1; 51 PDF members\n", + "LHAPDF 6.5.3 loading all 101 PDFs in set NNPDF40_nnlo_as_01180\n", + "NNPDF40_nnlo_as_01180, version 1; 101 PDF members\n" + ] + } + ], "source": [ "ds = API.dataset(**inp)\n", "resd, res30, res31 = API.one_or_more_results(**inp)" @@ -157,8 +168,8 @@ { "data": { "text/plain": [ - "array([[9.90e+09, 7.00e+09],\n", - " [7.00e+09, 1.82e+10]])" + "array([[9.9000e+09, 1.2859e+10],\n", + " [1.2859e+10, 1.8200e+10]])" ] }, "execution_count": 11, @@ -197,8 +208,8 @@ { "data": { "text/plain": [ - "array([[9.90e+09, 7.00e+09],\n", - " [7.00e+09, 1.82e+10]])" + "array([[9.9000e+09, 1.2859e+10],\n", + " [1.2859e+10, 1.8200e+10]])" ] }, "execution_count": 14, @@ -246,8 +257,8 @@ { "data": { "text/plain": [ - "array([[-0.86889896, 0.49498949],\n", - " [ 0.49498949, 0.86889896]])" + "array([[-0.80843445, 0.58858622],\n", + " [ 0.58858622, 0.80843445]])" ] }, "execution_count": 18, @@ -285,7 +296,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 21, @@ -294,14 +305,12 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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KMTHx+PChQsA2noIo6KiMGvWLMTGxuKbb75BVlYWJk+ejNtuuw3R0dF4//331W25ePEi7r33XvVrUZ27uafwp59+Ur8fUVFR+Oabb7Su6eg1qa6bO3cuxo8fj4iICEyePBn19fV6v1+GsLngzcvLC8nJyVpfLi4u8Pf3R3JyMgICAgAAGRkZcHBwwNdff61RxoYNG7BhwwYcP34cALBz505s2LABW7dulfz12ANdvWkdJdpVpQZxELr+1WHKDyIylFTpg6KjozFx4kS89957WucEQcD777+P119/Hc3NzZ2W89133yEkJAT+/v46zzs5OWH48OHIzMxUH/vrX/+qHjZVBREtLS147rnnsGrVKsjlco0y8vPzERoaqv65b9++aG5uRkVFRadtO3z4MNasWYNz584hPDwcy5cvV587duwY3nrrLfz222948MEHsWTJEq37z549i5deegmbN2/Gb7/9hmnTphnUA/X3v/8dtbW1+O2333D8+HEcPHgQX3zxBdzd3TFs2DDs378f169fR0lJCX7//Xc0NzcjPT0dY8aMgaOjIwBg//79eOutt3D27Fk888wzmDFjhrr88+fP44knnsDp06fx5JNPIiUlBe+88w6OHTuG48eP44cffsCuXbvQ2tqKqVOn4rHHHsNvv/2G3377DU8//bRWe//2t7/h008/xenTp5GZmYn77rtP65oPPvhA52tSOXXqFNLS0nD+/Hk0Njbiv//9r97vlyFscsGCvkRRhEKh0Frm/sgjj2j8rFqIEBoairy8PKmaZzcMTbQ73C8EGDxG4x5dDNlpgYgIMH3XFkMsWbIEcXFxeP7557XOJSUlITIyEp9++qnWHOja2lrExsZCFEX07dsXmzZt6rSe9sOvH374oXoOnUpqaioefPBBREZGmu3/UxMnToSvry8AYMyYMRodGKNGjcItt9yiPpeWlqZ1/y+//IJJkyapsy/Mnj0bL730Empra9G7d+8u69+xYwf++c9/QiaTwcXFBTNnzsTmzZsxZ84c3H333di5cycaGxuRnJyM+vp6HDx4ELt27cL48eM12qna3vLZZ5/FCy+8oE7ldcsttyA5ORlAW8/auXPn8MQTT6jvra2txblz5xAUFIT6+no8+eST6nO6gu27774bf/nLX/DQQw9h/PjxGDlypNY16enpWL58uc7XBAAPPPAA3Nzc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\n", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -326,8 +335,8 @@ "color30 = ax._get_lines.get_next_color()\n", "color31 = ax._get_lines.get_next_color()\n", "\n", - "ax.plot(*res30._rawdata[:2,:], 'o', label=pdfs[0], color=color30)\n", - "ax.plot(*res31._rawdata[:2,:], 'o', label=pdfs[1], color=color31)\n", + "ax.plot(*res30.rawdata[:2,:], 'o', label=pdfs[0], color=color30)\n", + "ax.plot(*res31.rawdata[:2,:], 'o', label=pdfs[1], color=color31)\n", "\n", "ax.axvline(res30.central_value[0], color=color30, linewidth=0.5)\n", "ax.axhline(res30.central_value[1], color=color30,linewidth=0.5)\n", From 6c936f7b9bd8a090e538819345d4070e6758f354 Mon Sep 17 00:00:00 2001 From: "Juan M. Cruz-Martinez" Date: Wed, 4 Oct 2023 11:45:30 +0200 Subject: [PATCH 6/7] Update conda-recipe/meta.yaml --- conda-recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda-recipe/meta.yaml b/conda-recipe/meta.yaml index 7de47f8c79..96ea3f7034 100644 --- a/conda-recipe/meta.yaml +++ b/conda-recipe/meta.yaml @@ -38,7 +38,7 @@ requirements: - pkg-config - python # requirements for validphys - reportengine >=0.30.25 # see https://github.com/NNPDF/reportengine - - matplotlib >=3.3.0,<3.8 + - matplotlib >=3.3.0,<3.8 # see https://github.com/NNPDF/nnpdf/pull/1809 - blessings >=1.7 - scipy >=0.19.1 - pandas <2 # In principle the code runs with pandas 2 but the results (plots, tables, formats) are untested From 154a6dd157f26680dab420ecab5bef391b82cea3 Mon Sep 17 00:00:00 2001 From: "Juan M. Cruz-Martinez" Date: Wed, 4 Oct 2023 13:42:32 +0200 Subject: [PATCH 7/7] Update validphys2/src/validphys/checks.py Co-authored-by: Mark Nestor Costantini <85164495+comane@users.noreply.github.com> --- validphys2/src/validphys/checks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validphys2/src/validphys/checks.py b/validphys2/src/validphys/checks.py index f0c09ddb2f..d7577b8fb8 100644 --- a/validphys2/src/validphys/checks.py +++ b/validphys2/src/validphys/checks.py @@ -47,7 +47,7 @@ def check_pdf_is_montecarlo(ns, **kwargs): def check_pdf_is_montecarlo_or_symmhessian(pdf, **kwargs): etype = pdf.error_type check( - etype in {'replicas', 'symhessian'}, + etype in {'replicas', 'symmhessian'}, f"Error type of PDF {pdf} must be either 'replicas' or 'symmhessian' and not {etype}", )