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)
它使用matplotlib和plt。
你应该
import matplotlib
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)
在第一行中,您使用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只需在程序开始时调用即可。