簡體   English   中英

numpy nd數組的負數

[英]negative of numpy nd array

連接到問題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']]

當你似乎想用一個倒軸做一個散點圖時,我有點困惑為什么你提出了numpy二維數組問題。 如果您確實需要數據的二維圖,請嘗試imshow:

plt.imshow(tdos)

因為它會自動開始在左上角繪圖(用於圖像數據),所以它會自動將你的numpy數組顛倒過來。

要正常繪制數組,您可以使用:

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

如果你真的想要一個倒置一個軸的散點圖:

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

PyPlot中的反向Y軸 對我而言,這比乘以-1更清潔,但這也會有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM