Skip to content

Issue with prtools package compatibility with matplotlib v3.8 #20

@boydcpeters

Description

@boydcpeters

I encountered an issue while working on exercises for the CS4220 course, specifically right before exercise 1.10. A short example provided just before this exercise includes the following code snippet:

>>> a = pr.gendath()
>>> w = pr.parzenc(a)
>>> pr.scatterd(a)
>>> pr.plotc(w)

However, running this code resulted in the following error:

Traceback (most recent call last):
  File "c:\Users\boydc\Projects\university\cs4220-ml1\test.py", line 10, in <module>
    pr.plotc(w)
  File "C:\Users\boydc\Anaconda3\envs\cs4220-env\lib\site-packages\prtools\mapping.py", line 507, in plotc
    colors = next(ax._get_lines.prop_cycler)['color']
AttributeError: '_process_plot_var_args' object has no attribute 'prop_cycler'

After some investigation, I discovered that the issue may be related to changes in the latest matplotlib release to facilitate pickling (matplotlib/matplotlib#26831). It appears that this has led to a break in the internal API.

A potential workaround suggested in the linked GitHub issue is to downgrade matplotlib to v3.7, as it seems to resolve the problem. However, I wanted to bring this to your attention as the prtools package is likely to face compatibility issues with matplotlib v3.8+ until the underlying problem is addressed or matplotlib creates a new version that publicly exposes the color cycler for an axis.

Edit: I just observed that a PR (#19) about this issue has already been opened, so feel free to close this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions