连接问题Plot 2D Numpy Array, 我想绘图:
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'
我不明白为什么。虽然错误很清楚。
转置的tdos看起来像:
[['-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 :(得分:0)
当你想要用一个倒轴做一个散点图时,我有点困惑为什么你提出了numpy二维数组问题。如果您确实需要数据的二维图,请尝试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更清洁,但这也会有效。