我试图在MacOS X上使用Python 2.7.2和IPython 1.1.0上的IPython笔记本.
我无法让matplotlib图形显示为内联.
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Run Code Online (Sandbox Code Playgroud)
我也试过%pylab inline和ipython命令行参数,--pylab=inline但这没有区别.
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()
Run Code Online (Sandbox Code Playgroud)
而不是内联图形,我得到这个:
<matplotlib.figure.Figure at 0x110b9c450>
Run Code Online (Sandbox Code Playgroud)
并matplotlib.get_backend()表明我有'module://IPython.kernel.zmq.pylab.backend_inline'后端.
python data-visualization matplotlib ipython jupyter-notebook
我确定我忘记了一些非常简单的事情,但我无法获得与Seaborn合作的某些情节.
如果我做:
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)
然后我像matplotlib一样创建的任何绘图都获得了Seaborn样式(背景中的灰色网格).
但是,如果我尝试做其中一个示例,例如:
In [1]: import seaborn as sns
In [2]: sns.set()
In [3]: df = sns.load_dataset('iris')
In [4]: sns.pairplot(df, hue='species', size=2.5)
Out[4]: <seaborn.axisgrid.PairGrid at 0x3e59150>
Run Code Online (Sandbox Code Playgroud)
pairplot函数返回一个PairGrid对象,但该图不显示.
我有点困惑,因为matplotlib似乎运行正常,Seaborn样式应用于其他matplotlib图,但Seaborn函数似乎没有做任何事情.有没有人知道可能是什么问题?
我想要的效果
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina'
Run Code Online (Sandbox Code Playgroud)
在推出我所有的Jupyter笔记本电脑时,我无法弄清楚当前的方法是什么来实现这一目标.这里和其他地方有很多答案,但我找不到任何答案似乎都是最新的.
我如何在当前版本的Jupyter笔记本中完成上述操作(但一般不是IPython!):我应该应用哪些设置应该放在哪个配置文件中?
我试过了
c.InteractiveShellApp.matplotlib = "inline"
c.InlineBackend.figure_formats = set(['retina'])
Run Code Online (Sandbox Code Playgroud)
在
~/.jupyter/jupyter_notebook_config.py
Run Code Online (Sandbox Code Playgroud)
但这没有效果.
matplotlib ipython python-2.7 retina-display jupyter-notebook
我最近将ipython升级到2.0.0,无法使内联图工作.如果我试试
%pylab inline
plot([1,2],[1,2])
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
Populating the interactive namespace from numpy and matplotlib
[<matplotlib.lines.Line2D at 0x10ffcf080>]
/usr/local/lib/python3.4/site-packages/IPython/core/formatters.py:239: FormatterWarning: Exception in image/png formatter: _image_module::readpng: png_create_read_struct failed
FormatterWarning,
<matplotlib.figure.Figure at 0x10e77ca58>
Run Code Online (Sandbox Code Playgroud)
在控制台中,我有以下错误:
ERROR:tornado.application:Uncaught exception in /api/kernels/0a214dee-3143-4d34-89cb-9d65ce154fe6/shell
Traceback (most recent call last):
File "/usr/local/lib/python3.4/site-packages/tornado/websocket.py", line 322, in wrapper
return callback(*args, **kwargs)
File "/usr/local/lib/python3.4/site-packages/IPython/html/services/kernels/handlers.py", line 122, in on_message
self.session.send(self.zmq_stream, msg)
File "/usr/local/lib/python3.4/site-packages/IPython/kernel/zmq/session.py", line 646, in send
stream.send_multipart(to_send, copy=copy)
AttributeError: 'NoneType' object has no attribute 'send_multipart'
Run Code Online (Sandbox Code Playgroud)
知道这里发生了什么吗?
编辑:我在python 3.4.0,ipython 2.0.0和matplotlib 1.3.1
我正在使用IPython 3/Jupyter,我想默认使用%matplotlib选项.
在IPython 2中,我在〜/ .ipython/profile_default/ipython_notebook_config.py上有下一个选项
c.InteractiveShellApp.matplotlib = 'inline'
Run Code Online (Sandbox Code Playgroud)
但是在IPython 3中,此选项不再可用.
它也消失了设置c.InlineBackend.rc,我用它来设置图表的外观.
现在如何设置这些选项?
现在matplotlib的默认后端是 'module://ipykernel.pylab.backend_inline'
我想切换到TkAGG.我编辑了matplotlibrc文件
~/anaconda2/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc/
加上
backend : TkAgg
它确实切换了backendpython而不是Jupyter.
现在,每次我开始使用新笔记本时Jupyter,我都必须这样做%matplotlib tk,不是有一个很好的方法来制作TkAGG默认的后端Jupyter吗?
我正在使用ipython笔记本电脑,但遇到了问题。
这段代码%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()
Run Code Online (Sandbox Code Playgroud)
但是,我不能用下面的代码内联。
%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')
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息说
UsageError: unrecognized arguments: #this code is to plot inline the notebook
Run Code Online (Sandbox Code Playgroud)
没有%matplotlib inlineI,我没有问题,但是在弹出窗口中显示图。
有人可以帮我解决这个问题吗?