python SyntaxError:无效语法%matplotlib inline

时间:2016-09-12 11:43:52

标签: python matplotlib

我的python脚本中出现了这个错误:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

from utils import progress_bar_downloader
import os
#Hosting files on my dropbox since downloading from google code is painful
#Original project hosting is here: https://code.google.com/p/hmm-speech-recognition/downloads/list
#Audio is included in the zip file
link = 'https://dl.dropboxusercontent.com/u/15378192/audio.tar.gz'
dlname = 'audio.tar.gz'

if not os.path.exists('./%s' % dlname):
    progress_bar_downloader(link, dlname)
    os.system('tar xzf %s' % dlname)
else:
    print('%s already downloaded!' % dlname)

我想使用matplotlib,但它会出现语法错误, 我试过sudo apt-get install python-matplotlib

6 个答案:

答案 0 :(得分:7)

如果您没有使用Jupyter IPython笔记本,只需注释掉(或删除)该行,一切都会正常工作,如果您从控制台运行python脚本,将打开一个单独的绘图窗口。

如果你不使用Jupyter IPython笔记本,你笔记本中的第一个python代码单元应该有一行"%matplotlib inline"因为你能够查看任何情节。

答案 1 :(得分:4)

“%matplotlib inline”不是有效的python代码,因此您无法将其放在脚本中。

我假设您使用的是Jupyter笔记本?如果是这样,将它放在第一个单元格中,一切都应该有效。

答案 2 :(得分:1)

“%matplotlib inline”是一个魔术命令,最适合Jupyter IPython Notebook。使用Jupyter笔记本时,此命令使图像自动在浏览器中内联显示,而无需调用show()。 IPython是支持这些魔术命令的核心,但是在这种情况下,仅从控制台使用IPython是不够的,因为此特定调用会尝试内嵌显示图形。不知道它是否可以与其他任何组合一起使用,但是要开始使用Jupyter笔记本。

您只能在单元格内使用此代码。按Shift + Enter来执行它。

In []: %matplotlib inline

由于这不是有效的python代码,因此,如果我们将其包含在python脚本中,它将返回语法错误(即使使用导入或其他机制从Jupyter笔记本执行脚本也是如此)。

和其他快捷方式一样,如果不想使用jupyter笔记本,则可以从python脚本中删除“%matplotlib inline”,并在末尾添加show()来显示绘图。

答案 3 :(得分:0)

在Spyder中使用%matplotlib内联时,我遇到了相同的语法错误。
在用以下代码行替换为new_obj的系列之后,我想绘制的系列成功显示在控制台上:

    import matplotlib.pyplot as plt
    new_obj.resample('M').sum().plot(kind="bar")
    plt.show()

答案 4 :(得分:0)

%matplotlib内联只能在Ipython控制台中很好地工作,否则它在Jupyter Notebook中会非常频繁地工作。 因此,在我的建议下,如果您想使用Matplotlib,请选择Jupyter Notebook

答案 5 :(得分:0)

评论[内嵌%matplotlib]

添加[plt.show()]

有效的简单代码:

import pandas_datareader.data as web
import datetime
import matplotlib.pyplot as plt
# %matplotlib inline

start = datetime.datetime(2012,1,1)
end = datetime.datetime(2017,1,1)

tesla = web.DataReader('TSLA','yahoo',start,end)
tesla['Open'].plot()
plt.show()