3D line plots?


#1

Yesterday, March 22, I did a 3D line plot using Plots/PyPlot:

x = linspace(-2π,2π)
plot(x,sin.(x),cos.(x))

This worked fine. Today, I did Pkg.update(), and re-ran the code. Doesn’t work, and I get long error message…

PyError (ccall(@pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, arg, kw)) <type ‘exceptions.ValueError’>
ValueError(u"Unknown projection ‘3d’",)
… etc., etc.


Anyone got an idea why? (I’m trying to figure out how to use Plots…)


#2

I get the same error at first using Plots with the pyplot() backend, but interestingly PyPlot.plot3D(x, sin.(x), cos.(x)) works, then when I try Plots.plot(x, sin.(x), cos.(x)) again, it also works.

julia> Pkg.status.(("Plots","PyPlot"))
 - Plots                         0.15.1
 - PyPlot                        2.5.0

#3

Thanks for tip. So…

plot(x,sin.(x),cos.(x))

used to work yesterday, but crashes today.

If I instead type:

PyPlot.plot3D(x,sin.(x),cos.(x))

the response is:

1-element Array{PyCall.PyObject,1}:
PyObject <mpl_toolkits.mplot3d.art3d.Line3D object at 0x000000000318D278>

If I next type:

plot(x,sin.(x),cos.(x))

this now works. FURTHERMORE… I can then invoke other 3D line plots, e.g.

plot(x,sinh.(x),cosh.(x))

and it works right away, without using the PyPlot.plot3D command in between.

Seems like command PyPlot.plot3D loads some function into my Jupyter session (64 bit Win 10)…

Question: is this a willed change, or a bug?


#4

Almost certainly a bug, I filed an issue here. (Sorry, I forgot about this topic until the same issue happened with me)