在python中绘制稀疏矩阵与列表?

时间:2014-01-09 19:17:56

标签: python matplotlib sparse-matrix

我的输出看起来像这样:

 (1, 0) 5.15280812642e-42
 (2, 0) -6.31593498364e-35
 (3, 0) 4.1137215863e-33
 (4, 0) 4.11347362121e-33
 (5, 0) 1.15690910918e-33
 (6, 0) 2.14943418749e-33
  :   :
 (4498, 0)  4.16882551974e-30
 (4499, 0)  4.16882551974e-30
 (4500, 0)  4.16882551114e-30
 (4501, 0)  4.16882786295e-30

如果我可以将稀疏矩阵转换为包含所有浮点数的列表,那么情况将很容易。因此,我使用

 output = [ output[i][0] for i in range(0,4502)]
 plt.plot(t,output) 

其中t是[0,1,2,3 .... 4501] 但它不起作用。这是绘制这些数据的更好方法吗?谢谢。

2 个答案:

答案 0 :(得分:0)

您的输出向量太短,len(output) == 4999。 Matplotlib不会那样。我认为对稀疏矩阵和结果向量使用相同的名称output是个坏主意。

答案 1 :(得分:0)

无论如何,只需删除t,matplotlib图对整数索引:

plt.plot( [ output[i][0] for i in range(0,4999)])

或者如果你真的打算绘制整个事物:

plt.plot([output[i][0] for i in range(len(output)))

或更多pythonically

plt.plot([i[0] for i in output])