需要帮助理解“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```

原文由 Kibbles 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 968
2 个回答

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

 fig = plt.figure(figsize=(20,10))

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

原文由 Saritus 发布,翻译遵循 CC BY-SA 4.0 许可协议

它使用 matplotlib 和 plt。

你应该

import matplotlib
import matplotlib.pyplot as plt

原文由 politinsa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题