]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
fix : propagating the modifications induced by the matplotlib version upgrade from... jha/CurvePlot_barplot_stemplot
authorjh777916 <juba.hamma@cea.fr>
Wed, 11 Sep 2024 14:04:21 +0000 (16:04 +0200)
committerjh777916 <juba.hamma@cea.fr>
Wed, 11 Sep 2024 14:04:21 +0000 (16:04 +0200)
More details in commits b54e417f602b7810b19e26e4ea9412 (branch jha/CurvePlot_barplot_stemplot_9_12_0)

34 files changed:
tools/CurvePlot/src/python/CMakeLists.txt
tools/CurvePlot/src/python/controller/CMakeLists.txt
tools/CurvePlot/src/python/controller/PlotController.py
tools/CurvePlot/src/python/controller/__init__.py
tools/CurvePlot/src/python/controller/utils.py.in
tools/CurvePlot/src/python/model/CMakeLists.txt
tools/CurvePlot/src/python/model/CurveModel.py
tools/CurvePlot/src/python/model/Model.py
tools/CurvePlot/src/python/model/PlotManager.py
tools/CurvePlot/src/python/model/TableModel.py
tools/CurvePlot/src/python/model/XYPlotSetModel.py
tools/CurvePlot/src/python/pyqtside/CMakeLists.txt
tools/CurvePlot/src/python/pyqtside/QtCore.py
tools/CurvePlot/src/python/pyqtside/QtGui.py
tools/CurvePlot/src/python/pyqtside/QtWidgets.py
tools/CurvePlot/src/python/pyqtside/__init__.py
tools/CurvePlot/src/python/pyqtside/uic.py
tools/CurvePlot/src/python/test/CMakeLists.txt
tools/CurvePlot/src/python/test/PlotCurve_Standalone.py
tools/CurvePlot/src/python/test/PlotTestBase.py
tools/CurvePlot/src/python/test/SalomePyQt_MockUp.py.in
tools/CurvePlot/src/python/test/TestDesktop.py
tools/CurvePlot/src/python/test/plot_test.py
tools/CurvePlot/src/python/ui/CMakeLists.txt
tools/CurvePlot/src/python/ui/CurveTreeDockWidget.py
tools/CurvePlot/src/python/ui/PlotSettings.py
tools/CurvePlot/src/python/ui/PlotWidget.py
tools/CurvePlot/src/python/views/CMakeLists.txt
tools/CurvePlot/src/python/views/CurveBrowserView.py
tools/CurvePlot/src/python/views/CurveTabsView.py
tools/CurvePlot/src/python/views/CurveView.py
tools/CurvePlot/src/python/views/StemView.py
tools/CurvePlot/src/python/views/View.py
tools/CurvePlot/src/python/views/XYView.py

index 0452be71f6ee2c0111ed9bea94a0b060c7904ec0..552c806d6c648c52373ddd5df3c972084cc99352 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index d91a297055718860cce5cb660d0879d76900ca06..1dcb36252e4bc168d8248a01ecf7dd895527efb1 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index c2a619fd7142b924eafdef33097e17d8f473a477..9bb3bf2f66cb1578c02b56d53e81266dde82f852 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -926,4 +926,4 @@ class PlotController(object):
     # Upon change on the curve also update the full plot, notably for the auto-fit and the legend:
     self.setModelListener(sm, xyview)
 
-    return sm.getID(),cps.getID()
\ No newline at end of file
+    return sm.getID(),cps.getID()
index 8269a5e03b4af3a7e09d2fbe7bcdd9bbaa2328f0..a18d661dcc40ea2e6381fef5aa42ed1b169a8a29 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 5b85b40f3f87eff0bc02b4db1228f2519b74c24e..3bcdaeca1b27e6092d7397df270f8cb94cf0aaeb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index b756d9156ae3cfc71f5f637fd14329b0b5add937..7339e535f252b42fbf93c7f4710a999ba26a3525 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index c8d7c64261ba6ec4ec7024bd0e384f1f1a2e8e8c..218f80d8e00a9a380aecfccc5b01522576f815d4 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index e77132f1067c146e817247fff94bc1af24867470..6f3253225be2b6c4216fb304c53dffb7d96466bb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index eca716800ecc5ae0ef794525c05467e571ccdf5a..504ad6b3d8b4f17e1ac58a711dc5ca0d77c91cc3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 78e3c24436825cae838434f1f6b7c2b15123830e..7ead44be78a33d92e765d968f0615e7ee1fc5aaf 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 93bd7beda6431932172029aab4e1e43e169446ba..dd368f84fccbf95a6b4632b160cf864072221899 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index ce77a2a1a408f71b7ab6ca3e85765def967a7234..e50bb31d520509b67bf660eb4b9161f82068a927 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 18600c6c6ce8072fb4e3e4753ee96b782a957b83..95d4830874130b0b1bbda6cd378ee4edd5efd094 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 80d04433d1393ea4bb28f47fb82c2566dffa125e..b5ce0b7a0c3b02426bfb05d69d46d3935b2528ca 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 8f67f6b922fb4ebcb95b523e737703b0daf898ce..fd9510ba3d761d7ee351a758f10a73b6e7329c8a 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 8afde8c5f5c9d0899ac45d2abb713ddaa3573998..513f41d08c21a1ad3da9209aab5fac63551f5448 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 94043c6c86d0aa37d89e4b76c1494a5613ad3dcf..689abfd41e1b7a2ed1be5e294f955fb9111a39e2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index a001435d47f19e630120638f8c59204fb5780851..a7799f742ef0e38442b609b5bd52f32b204a4e6b 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 73c8221a13163360363d251b5c0e8f8b999cc1dd..deafd678b59fe1c9f9f00d7614a3f46eb4630f43 100755 (executable)
@@ -1,5 +1,5 @@
 # -*- coding: latin-1 -*-
-# Copyright (C) 2007-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 1e254e3a053ffeb035459310be4718f9ad37d217..0cd71ee315b596a052faa88e9d367a10a3119822 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 9c4bbbc4ec119b38c07f1781debf2a22e3a19768..8de76f93c4b48b9ff3e04fb2aa45b52786d3b1f8 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index ba66bf44ea50ee648c7312db7227359f587b3dc4..ae6d15c6b441852e2189444b85b3aa0bd073b053 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 8240dd9d023c84ca5fc73f21c51fd959f9e37fad..29ea32681f1a894e4ec07c2dd4b3df7317233fa5 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Copyright (C) 2007-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2007-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 1702ea090e20dcbe78985b1e696c4d96be3ee1b6..68d41ff1041248e4d54f35828f5a7f0bdcb4e1d9 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 636603cc6053523147e5c74b8065950ff0bdf25f..5b07bb6d63164a11fee15ab130dea8a464eae86e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 6020d41a58cd40c6396f355faad5cf153b040b54..12121ca0962a12fa6f088d7dcb0e3490b4e5ff62 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index fd5c29fe9aa7a379d2d4d56f40657c5345d57e09..c10ed893019cf315491349ae979e4a2b39897321 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 316a1d517e258dc7eed8bf48411dd24c779f4eb9..f47db43c1165db544d645a42ece29f59798069df 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2012-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index 9940aa6aac7ff3e7c9a588eb7afe7cf982655e05..560bbe2833af3cbbb0c3e6ef0c5c78904b53a77d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index c6a52b2ce2a7f38252e7293d34f0ef375a8b412f..001bafe145130af75baf1f7614d6d0bddaeec368 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index dafc9eb87f41ecdd1f3cea6e426fd537adc0def5..0c1a5527009bc8f0bba0446dc674edcf58bb9f8c 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -38,8 +38,9 @@ class CurveView(PlotView):
     x_idx, y_idx = m.getXAxisIndex(), m.getYAxisIndex()
     d = self._model.getTable().getData()
     plots = self._mplAxes.plot(d[:, x_idx], d[:, y_idx], label=m._title, alpha = 1.,
-                                        picker=self._PICKER_PRECISION)
+                                        picker=True)
     self._mplArtist = plots[0]
+    self._mplArtist.set_pickradius(self._PICKER_PRECISION)
     self._initialLineWidth = self._mplArtist.get_linewidth()
     self._initialOpacity = self._mplArtist.get_alpha()
     self._initialZOrder = self._mplArtist.get_zorder()
index dd721b5153a5479150322cd300f9b168380a0ba4..556baac9094fd96b3d8bc8a7ef98cb60f3bf1263 100644 (file)
 
 from .PlotView import PlotView
 from .utils import Logger
+# Matplotlib stem() function evolved from 3.0.3 to 3.1.0 : update of the returned StemContainer
+# The old implementation of StemView class is kept to ensure backwards compatibility
+# with Salome 9.9.0, which uses matplotlib v3.0.3
+import matplotlib
+from packaging import version
 
 class StemView(PlotView):
   _PICKER_PRECISION = 10  #pts
@@ -32,8 +37,13 @@ class StemView(PlotView):
     d = self._model.getTable().getData()
 
     # stem returns a StemContainer : (markerline <Line2D>, stemlines<list(Line2D)>, baseline<Line2D> )
-    self._mplArtist = self._mplAxes.stem(d[:, x_idx], d[:, y_idx], label=m._title,\
-                                           linefmt='b-', markerfmt='_', basefmt=' ')
+    if version.parse(matplotlib.__version__) < version.parse("3.1.0"):
+      self._mplArtist = self._mplAxes.stem(d[:, x_idx], d[:, y_idx], label=m._title,\
+                                             linefmt='b-', markerfmt='_', basefmt=' ')
+    else:
+      self._mplArtist = self._mplAxes.stem(d[:, x_idx], d[:, y_idx], label=m._title,\
+                                             linefmt='b-', markerfmt='_', basefmt=' ',
+                                             use_line_collection=False)
 
     self._initialLineWidth = self._mplArtist[0].get_linewidth()
     self._initialZOrder = self._mplArtist[0].get_zorder()
@@ -46,7 +56,8 @@ class StemView(PlotView):
 
     # picker for the stemlines
     for lin in self._mplArtist[1]:
-      lin.set_picker(self._PICKER_PRECISION)
+      lin.set_picker(True)
+      lin.set_pickradius(self._PICKER_PRECISION)
   
   def update(self):
     Logger.Debug("StemView::udpate")
index ea079a3cdd97fa0a3bea719064f2b3f67fd5b794..e74a9d29d9b2f587c16954b0fd4362d05c693ebe 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
index bb8083192f340c3906ffb3ea64085422f64e042a..773e655e2c6ff4f9090cb5bc65f978fcb2bbda65 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2022  CEA/DEN, EDF R&D
+# Copyright (C) 2016-2023  CEA, EDF
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
+# Matplotlib xaxis._gridOnMajor is deprecated since matplotlib v3.3.0
+# The old implementation of XYView class is kept to ensure backwards compatibility
+# with Salome 9.9.0, which uses matplotlib v3.0.3
+import matplotlib
+from packaging import version
+
 import matplotlib.pyplot as plt
 import matplotlib.colors as colors
 from matplotlib.patches import Rectangle
@@ -610,7 +616,11 @@ class XYView(View):
     dlg.titleEdit.setText(self._mplAxes.get_title())
     dlg.axisXTitleEdit.setText(self._mplAxes.get_xlabel())
     dlg.axisYTitleEdit.setText(self._mplAxes.get_ylabel())
-    dlg.gridCheckBox.setChecked(self._mplAxes.xaxis._gridOnMajor)  # could not find a relevant API to check this
+    # could not find a relevant API to check this
+    if version.parse(matplotlib.__version__) < version.parse("3.3.0"):
+      dlg.gridCheckBox.setChecked(self._mplAxes.xaxis._gridOnMajor)
+    else :
+      dlg.gridCheckBox.setChecked(self._mplAxes.xaxis._major_tick_kw['gridOn'])
     dlg.axisXSciCheckBox.setChecked(self._axisXSciNotation)
     dlg.axisYSciCheckBox.setChecked(self._axisYSciNotation)
     xmin, xmax = self._mplAxes.get_xlim()