# matplotlib don't work??

import matplotlib.pyplot as plt
A = matrix([[1,2,3],[4,5,6],[7,8,9]])
plt.matshow(A)


What am I missing?

edit retag close merge delete

what happened to the original question?!

( 2011-05-22 14:31:25 +0200 )edit

I've restored it (more or less) from the revision history. @Sagud, if you have a new question (about animate?) please ask a new question rather than changing an old one.

( 2011-05-22 21:36:11 +0200 )edit

Sort by » oldest newest most voted

Sage matrices aren't the same as numpy matrices.

sage: A = matrix([[1,2,3],[4,5,6],[7,8,9]])
sage: type(A)
<type 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
sage: parent(A)
Full MatrixSpace of 3 by 3 dense matrices over Integer Ring
sage: import numpy
sage: B = numpy.matrix([[1,2,3],[4,5,6],[7,8,9]])
sage: type(B)
<class 'numpy.matrixlib.defmatrix.matrix'>


In this case, though, it's easy enough to convert the Sage matrix into something that numpy will like (an array, not a matrix, but that shouldn't matter here):

sage: A.numpy()
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
sage: type(A.numpy())
<type 'numpy.ndarray'>
sage: plt.matshow(A.numpy())

more

I can't figure out what this is supposed to look like. Is it any different from matrix_plot(A)?

( 2011-05-16 11:23:19 +0200 )edit

@kcrisman: by default, unlike matrix_plot, you really only get the squares. No axes or ticks. [Not sure if there are things you can tweak or not.]

( 2011-05-17 13:06:49 +0200 )edit

You can tweak everything in matplotlib. That is how we generate all these graphics - we use spy and imshow for dense and sparse matrices, it looks like.

( 2011-05-17 17:00:17 +0200 )edit

## Stats

Seen: 548 times

Last updated: May 22 '11