需要帮助了解“未定义matplotlib”错误

Kib*_*les 0 python cmd matplotlib

我正在尝试绘制一些恒星数据的CMD图。

我正在使用提供给我的模块中的代码,该代码应该像复制和粘贴一样简单。然而,抛出下面显示的错误。我已经将matplotlib导入为plt。老实说,我实际上并不理解第6行中的任何内容,因此对发生的情况进行解释会很有帮助!

# make a figure
fig = plt.figure(figsize=(20,10))
ax2 = fig.add_subplot(122)

# color-magnitude diagram (Hess diagram)
im2 = ax2.hexbin(df_cmd['f475w_vega']-df_cmd['f814w_vega'],df_cmd['f475w_vega'], \
                 gridsize=200,cmap=matplotlib.cm.viridis,norm=matplotlib.colors.LogNorm())
ax2.set_xlabel('F475W - F814W',fontsize=15)
ax2.set_ylabel('F475W',fontsize=15)
ax2.set_title('Color-magnitude (Hess) diagram',fontsize=20)
ax2.set_xlim(-1,5)
ax2.set_ylim(28.4,22)

#Error

NameError                                 Traceback (most recent call last)
<ipython-input-36-be39ddc4e09d> in <module>()
      4 
      5 # color-magnitude diagram (Hess diagram)
----> 6 im2 = ax2.hexbin(df_cmd['f475w_vega']-df_cmd['f814w_vega'],df_cmd['f475w_vega'],                  gridsize=200,cmap=matplotlib.cm.viridis,norm=matplotlib.colors.LogNorm())
      7 ax2.set_xlabel('F475W - F814W',fontsize=15)
      8 ax2.set_ylabel('F475W',fontsize=15)


NameError: name 'matplotlib' is not defined```
Run Code Online (Sandbox Code Playgroud)

pol*_*nsa 5

它使用matplotlib和plt。

你应该

import matplotlib
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)


Sar*_*tus 5

在第一行中,您使用plt,这可能是 的结果import matplotlib.pyplot as plt,这意味着您只能使用名称为 plt.pyplot 的 pyplot 子模块。

fig = plt.figure(figsize=(20,10))
Run Code Online (Sandbox Code Playgroud)

但随后你会尝试使用cmap=matplotlib.cm.viridis,norm=matplotlib.colors.LogNorm(),并重点关注matplotlib.cm.viridis。我想,您没有导入 matplotlib 作为自己的库,以便您可以使用它。import matplotlib只需在程序开始时调用即可。