Search code examples
matplotlibjuliaspy

Using spy() in Julia


I am trying to use spy(). But I am not getting the use of it right. I think my error has something to do with this: https://github.com/JuliaLang/julia/issues/2121

I have a 300x300 Array{Float64,2}

using PyPlot
pygui(true)
spy(I) # where I is my 300x300 array

and it gives me this error:

LoadError: PyError (:PyObject_Call) <type 'exceptions.TypeError'>
TypeError("object of type 'PyCall.jlwrap' has no len()",)
  File "/home/ashley/.julia/v0.4/Conda/deps/usr/lib/python2.7/site-packages/matplotlib/pyplot.py", line 3154, in plot
    ret = ax.plot(*args, **kwargs)
  File "/home/ashley/.julia/v0.4/Conda/deps/usr/lib/python2.7/site-packages/mpl_toolkits/mplot3d/axes3d.py", line 1539, in plot
    zs = np.ones(len(xs)) * zs

I have tried specifying spy(I, zs=zeros(size(I)) but then I just get the error:

LoadError: ArgumentError: function spy does not accept keyword arguments
while loading In[260], in expression starting on line 13

Any ideas?


Solution

  • spy shows the non-zero elements. Apparently it doesn't show anything if there are no non-zero elements.

    M = sprand(300, 300, 0.1)  # generate a sparse matrix with density 0.1 of non-zeros
    M = full(M)
    spy(M)
    

    works for me.