Axes.scatter call fails since removal of PyCXX

I think I see a breakage of the scatter call that I think should work and did
work before
https://github.com/matplotlib/matplotlib/commit/be34210a8c09fcd639ece583eb5c0acb855222b6

This is running on windows 7 (32 bit) with numpy 1.8 and current master.

The example is:

···

***
import numpy
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

POINTS = 500

figure = Figure(figsize=(6, 6), dpi=72)
ax = figure.add_subplot(1, 1, 1, projection=None)
scat = ax.scatter(numpy.arange(POINTS), numpy.sin(numpy.arange(POINTS)))
***

I get on current master

***
Traceback (most recent call last):
  File "C:\work\mpl_scatter_example.py", line 9, in <module>
    scat = ax.scatter(numpy.arange(POINTS), numpy.sin(numpy.arange(POINTS)))
  File "C:\Python27\lib\site-packages\matplotlib\axes\_axes.py", line 3690, in scatter
    self.add_collection(collection)
  File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 1459, in add_collection
    self.update_datalim(collection.get_datalim(self.transData))
  File "C:\Python27\lib\site-packages\matplotlib\collections.py", line 198, in get_datalim
    offsets, transOffset.frozen())
  File "C:\Python27\lib\site-packages\matplotlib\path.py", line 977, in get_path_collection_extents
    master_transform, paths, transforms, offsets,offset_transform))
ValueError: object too deep for desired array
***

I did very little troubleshooting beyond confirming that this works before the
merge mentioned in the first paragraph.

Joel

I think I see a breakage of the scatter call that I think should work and did
work before
Merge pull request #3646 from mdboom/decxx-backend-agg · matplotlib/matplotlib@be34210 · GitHub

This is running on windows 7 (32 bit) with numpy 1.8 and current master.

Ugh, I tried this same example on my ubuntu box and it works. I update this
diagnosis to "scatter is broken on windows since removing PyCXX"; note that I
do not get a traceback with the code below if I replace "scatter" with "plot".

Being that windows devs are scarce, I'll be digging into this more. I
certainly welcome any clues as it seems very bizarre to me so far.

Joel

···

On Mon, Nov 17, 2014 at 09:36:50AM -0500, Joel B. Mohler wrote:

The example is:

***
import numpy
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

POINTS = 500

figure = Figure(figsize=(6, 6), dpi=72)
ax = figure.add_subplot(1, 1, 1, projection=None)
scat = ax.scatter(numpy.arange(POINTS), numpy.sin(numpy.arange(POINTS)))
***

I get on current master

***
Traceback (most recent call last):
  File "C:\work\mpl_scatter_example.py", line 9, in <module>
    scat = ax.scatter(numpy.arange(POINTS), numpy.sin(numpy.arange(POINTS)))
  File "C:\Python27\lib\site-packages\matplotlib\axes\_axes.py", line 3690, in scatter
    self.add_collection(collection)
  File "C:\Python27\lib\site-packages\matplotlib\axes\_base.py", line 1459, in add_collection
    self.update_datalim(collection.get_datalim(self.transData))
  File "C:\Python27\lib\site-packages\matplotlib\collections.py", line 198, in get_datalim
    offsets, transOffset.frozen())
  File "C:\Python27\lib\site-packages\matplotlib\path.py", line 977, in get_path_collection_extents
    master_transform, paths, transforms, offsets,offset_transform))
ValueError: object too deep for desired array
***

I did very little troubleshooting beyond confirming that this works before the
merge mentioned in the first paragraph.

Joel