【问题标题】:Cannot plot inline with ipython notebook无法使用 ipython 笔记本内联绘图
【发布时间】:2015-03-01 22:31:54
【问题描述】:

我在玩 ipython notebook,但遇到了问题。

这段代码%matplotlib inline帮助我用下面的代码进行内联绘图。

%matplotlib inline 
ax1= plt.subplot(2,1,1)
ax1.plot(df.Close,label="sp500")
ax1.plot(ma,label='50MA')
plt.legend()

ax2=plt.subplot(2,1,2, sharex = ax1)
ax2.plot(df['H-L'],label='H-L')
plt.legend()

但是,我无法使用下面的代码进行内联绘图。

%matplotlib inline

def single_stock(stock_name):
    df = pd.read_csv('stocks_date_modified.csv',index_col='time',parse_dates=True)
    df = df[df.type == stock_name.lower()]
    _500MA= pd.rolling_mean(df['value'],500)
    ax1= plt.subplot(2,1,1)
    df['close'].plot(label='Price')
    plt.legend()

    ax2= plt.subplot(2,1,2, sharex = ax1)
    _500MA.plot(label='500MA')
    plt.legend()

    plt.show()

single_stock('bac')

我收到一条错误消息说

UsageError: unrecognized arguments: #this code is to plot inline the notebook

没有%matplotlib inline我没有问题显示绘图,但在弹出窗口中。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 如果你用ipython notebook --matplotlib=inline运行你的笔记本有什么不同吗?
  • 非常感谢!哦,所以 ipython 笔记本用户每次想要内联图时都键入 --matplotlib=inline?
  • 我已经为您的评论发布了答案:)
  • 你能发布完整的回溯吗?每个笔记本只需要运行一次内联魔法。
  • 谢谢大家 :) 解决了!

标签: python matplotlib ipython ipython-notebook


【解决方案1】:

如果其他人遇到此错误,您似乎不能在调用 IPython Magics 的行上使用内联 cmets:

In [9]: %matplotlib inline # allows matplotlib to be inline

UsageError: unrecognized arguments: # allows matplotlib to be inline

没有评论,它工作得很好:

In [9]: %matplotlib inline

但是,是的,在启动时使用 ipython notebook --matplotlib=inline 内联加载 matplotlib 无论如何可能是一个明智之举。

【讨论】:

  • 你节省了我的时间。谢谢
【解决方案2】:

您可以通过以下方式运行您的笔记本:

ipython notebook --matplotlib=inline

为了避免每次使用笔记本时重复输入,您可以创建一个笔记本配置文件READ HERE。 您还可以阅读相关的SO Answer,了解如何编写配置文件。

或者,如果您使用某种快捷键来调用您的笔记本(例如在 Mac/Linux 中),您可以绑定组合键来运行上面的命令。

【讨论】: