Monday, April 4, 2016

Matlab spy plot style in Python (sparse pattern)

The first time I used the command spy to show the sparse pattern of a sparse matrix, I wasn't satisfied with the result,
as a person who are used to Matlab plots. In this figure isn't easy to see the sparse pattern of the the matrix. After reading about the options available in the spy command, I found the option markersize. Changing the value of this parameter we can obtain a more familiar plot.
This is the code,
#!/usr/bin/env python
import scipy.sparse as sparse
import matplotlib.pyplot as plt
import scipy.io as io
import numpy as np

#Downloading the matrix from SPARSEKIT
problem = "SPARSKIT/drivcav/e05r0200"
mm = np.lib._datasource.Repository('ftp://math.nist.gov/pub/MatrixMarket2/')
f = mm.open('%s.mtx.gz' % problem)
A = io.mmread(f).tocsr()
f.close()
#Default Ploting
plt.spy(A)
plt.show()
#Closer to Matlab's result
plt.spy(A,markersize=1.0)
plt.show()

2 comments:

  1. Can you also crop the figure on the left and right?

    ReplyDelete
  2. Perhaps even better: betterspy. https://github.com/nschloe/betterspy (A small project of mine.)

    ReplyDelete