On 2025-06-15 04:53, jmhannon.ucdavis--- via Python-list wrote:
Greetings.  We (the group that I work with) have "inherited" some Python
scripts that were written years ago, using Python 2.

We're trying to upgrade the scripts so that they work in our current
environment:

     OS: Ubuntu 24.04.2 LTS
$ python --version
     Python 3.11.13
>>> matplotlib.__version__
     '3.10.0'


The first script that we looked at has a line:

     cs = plt.contourf(X, Y, data, LevelsNumber,
                   cmap=plt.cm.nipy_spectral, norm=norm).collections

If I run that script with python 3, I get a warning:

     MatplotlibDeprecationWarning: The collections attribute was
     deprecated in Matplotlib 3.8 and will be removed two minor
     releases later.
     cmap=plt.cm.nipy_spectral, norm=norm).collections

I also get the following error:

     paths = cs.get_paths()
             ^^^^^^^^^^^^
     AttributeError: 'list' object has no attribute 'get_paths'

The "paths" object that I get appears to be no more than a collection of
geometric factors, i.e., without additional attributes such as color, for
instance, and statements such as the following fail:

     bgra_array = 255*paths[i].get_facecolor()[0]

     AttributeError: 'Path' object has no attribute 'get_facecolor'

Unfortunately, all the suggestions that I've found to remedy this suggest
using the "collections" attribute, which is already in the code, and which as
I noted above, has been deprecated (maybe eliminated -- 3.10 vs. 3.8) now.

If you have any suggestions about this, please pass 'em along.  Thanks.

Does this help?

https://discourse.matplotlib.org/t/collections-attribute-deprecation-in-version-3-8/24164

--
https://mail.python.org/mailman3//lists/python-list.python.org

Reply via email to