2016-04-21 100 views
1

连接问题Plot 2D Numpy Array, 我试图绘制的:负numpy的第二阵列

tdos = np.transpose(tdos) 
# plot 
plt.plot(tdos[0], tdos[1]) 
plt.plot(tdos[0], -1.0*tdos[2]) # here, basically, I need the plot upside down 

,这是给错误:

plt.plot(tdos[0], -1*tdos[2]) 
TypeError: unsupported operand type(s) for *: 'int' and 'numpy.ndarray' 

我不明白为什么。尽管错误足够清楚。

转置TDO的样子:

[['-3.463' '-3.406' '-3.349' ..., '10.594' '10.651' '10.708'] 
['0.0000E+00' '0.0000E+00' '-0.2076E-29' ..., '0.2089E+02' '0.1943E+02' 
    '0.2133E+02'] 
['0.0000E+00' '0.0000E+00' '-0.3384E-30' ..., '0.3886E+02' '0.3915E+02' 
    '0.3670E+02'] 
['0.0000E+00' '0.0000E+00' '-0.1181E-30' ..., '0.9742E+03' '0.9753E+03' 
    '0.9765E+03'] 
['0.0000E+00' '0.0000E+00' '-0.1926E-31' ..., '0.9664E+03' '0.9687E+03' 
    '0.9708E+03']] 
+0

什么是'tdos'?不知道里面的东西很难说。但是'-1'A'beinng'A'一个numpy数组是非常好的(或者甚至是'-A'这个更短)。 –

+0

@imaluengo:谢谢你的评论。它现在更新。 – BaRud

+2

'tdos'似乎是一个字符串数组。在绘图之前尝试添加'tdos = tdos.astype(np.float)'。它会将数字字符串转换为浮点值。 –

回答

0

我,为什么你带出来的numpy的二维数组的问题有点困惑时,你似乎想要做散点图有一个倒轴。如果你真的想你的数据的2D情节,尝试imshow:

plt.imshow(tdos) 

,因为它开始在左上角自动绘制它会变成你的numpy的阵列倒挂全部由自己(用于图像数据)。

要绘制你的阵列通常你会用:

plt.imshow(tdos, origin="low") 

如果你真的想和一个轴的散点图倒:

plt.plot(tdos[0], tdos[2]) 
plt.gca().invert_yaxis() 

Reverse Y-Axis in PyPlot。对我来说,这比乘以-1稍微干净一点,但那也可以。