【发布时间】:2019-12-04 10:58:54
【问题描述】:
我在 IPython 中运行 %matplotlib,但是有一个 AttributeError: 'NoneType' 对象没有属性 'lower'
Python 3.7; MacOs Mojave 10.14.6 (18G84); conda matplotlib: 3.1.1 pypi_0 pypi
In [13]: import matplotlib
In [14]: import matplotlib.pyplot as plt
In [15]: %matplotlib
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-15-a49a4afc47c5> in <module>
----> 1 get_ipython().run_line_magic('matplotlib', '')
//anaconda3/lib/python3.7/site-packages/IPython/core/interactiveshell.py in run_line_magic(self, magic_name, line, _stack_depth)
2311 kwargs['local_ns'] = sys._getframe(stack_depth).f_locals
2312 with self.builtin_trap:
-> 2313 result = fn(*args, **kwargs)
2314 return result
2315
<//anaconda3/lib/python3.7/site-packages/decorator.py:decorator-gen-108> in matplotlib(self, line)
//anaconda3/lib/python3.7/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
185 # but it's overkill for just that one bit of state.
186 def magic_deco(arg):
--> 187 call = lambda f, *a, **k: f(*a, **k)
188
189 if callable(arg):
//anaconda3/lib/python3.7/site-packages/IPython/core/magics/pylab.py in matplotlib(self, line)
97 print("Available matplotlib backends: %s" % backends_list)
98 else:
---> 99 gui, backend = self.shell.enable_matplotlib(args.gui.lower())
100 self._show_matplotlib_backend(args.gui, backend)
101
AttributeError: 'NoneType' object has no attribute 'lower'
【问题讨论】:
-
不要只使用
%matplotlib。使用%matplotlib inline -
但是,在(控制台)IPython 笔记本中,您可能更愿意不使用“%matplotlib”魔术命令。
-
我也遇到了同样的问题。
%matplotlib本身在 ipython shell 中通常会使图形自动弹出,并使它们具有交互性等。它与嵌入图形的%matplotlib inline具有不同的目的(这不是我想要的)。您可以通过运行plt.ion()并选择合适的后端来获得一些类似的行为。不知道为什么%matplotlib命令在某些安装中不起作用。
标签: python python-3.x matplotlib