Unfortunately, no. I have made several attempts at implementing this, with
the last attempt during the sprints at SciPy 2014. I got tantalizingly
close, but it fell apart as I tried to bring all the pieces back together.
The mplot3d code is actually very old and doesn't use the transforms system
very well, nor does the transform system extend nicely to 3d.

If anybody wants to re-attack this problem, I would suggest by starting
with creating some 3d->2d projection classes to be added to the transforms
system, and get unit tests for these. From there, axis3d and art3d needs to
be piece-by-piece remade to properly build on the trasnforms stack.

Sorry for the lack of happier news. The only work-around that I can think
of is to apply the log scaling yourself to the data prior to plotting.

Ben Root


On Thu, Jan 29, 2015 at 5:30 PM, John Ladasky <john_lada...@sbcglobal.net>
wrote:

>  The following minimal code example illustrates a problem I'm having.
>
> import matplotlib.pyplot as plt
> from mpl_toolkits.mplot3d import Axes3D
>
> # succeeds
> fig = plt.figure()
> ax = fig.add_subplot(111, projection='3d')
> plt.show()
>
> # succeeds
> fig = plt.figure()
> ax = fig.add_subplot(111)
> ax.set_xscale("log")
> plt.show()
>
> # fails
> fig = plt.figure()
> ax = fig.add_subplot(111, projection='3d')
> ax.set_xscale("log")
> plt.show()
>
>
> Here is the traceback:
>
> Exception in Tkinter callback
> Traceback (most recent call last):
>   File "/usr/lib/python3.4/tkinter/__init__.py", line 1490, in __call__
>     return self.func(*args)
>   File
> "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line
> 276, in resize
>     self.show()
>   File
> "/usr/lib/python3/dist-packages/matplotlib/backends/backend_tkagg.py", line
> 348, in draw
>     FigureCanvasAgg.draw(self)
>   File
> "/usr/lib/python3/dist-packages/matplotlib/backends/backend_agg.py", line
> 451, in draw
>     self.figure.draw(self.renderer)
>   File "/usr/lib/python3/dist-packages/matplotlib/artist.py", line 56, in
> draw_wrapper
>     draw(artist, renderer, *args, **kwargs)
>   File "/usr/lib/python3/dist-packages/matplotlib/figure.py", line 1035,
> in draw
>     func(*args)
>   File "/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d/axes3d.py",
> line 267, in draw
>     ax.draw(renderer)
>   File "/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d/axis3d.py",
> line 404, in draw
>     tick.draw(renderer)
>   File "/usr/lib/python3/dist-packages/matplotlib/artist.py", line 56, in
> draw_wrapper
>     draw(artist, renderer, *args, **kwargs)
>   File "/usr/lib/python3/dist-packages/matplotlib/axis.py", line 242, in
> draw
>     self.label1.draw(renderer)
>   File "/usr/lib/python3/dist-packages/matplotlib/artist.py", line 56, in
> draw_wrapper
>     draw(artist, renderer, *args, **kwargs)
>   File "/usr/lib/python3/dist-packages/matplotlib/text.py", line 599, in
> draw
>     ismath=ismath, mtext=self)
>   File
> "/usr/lib/python3/dist-packages/matplotlib/backends/backend_agg.py", line
> 169, in draw_text
>     return self.draw_mathtext(gc, x, y, s, prop, angle)
>   File
> "/usr/lib/python3/dist-packages/matplotlib/backends/backend_agg.py", line
> 158, in draw_mathtext
>     x = np.round(x + ox + xd)
>   File "/usr/lib/python3/dist-packages/numpy/core/fromnumeric.py", line
> 2629, in round_
>     return round(decimals, out)
>   File "/usr/lib/python3/dist-packages/numpy/ma/core.py", line 4855, in
> round
>     result._mask = self._mask
> AttributeError: 'numpy.float64' object has no attribute '_mask'
>
> I am hoping to use logarithmic axes in a 3D plot.  I haven't found
> anything in the documentation which says that I am restricted to linear
> scaling.  My system configuration is: Python 3.4, Matplotlib 1.3.1, Ubuntu
> Linux 14.04 64-bit.  My system is selecting the TKAgg backend.
>
> Any advice is appreciated, thanks!
>
>
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is
> your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to