IPython笔记本在plt.show()之后停止评估单元格 [英] IPython notebook stops evaluating cells after plt.show()

查看:96
本文介绍了IPython笔记本在plt.show()之后停止评估单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用iPython进行编码。当我打开笔记本并通过执行SHIFT + ENTER运行一些代码时,它会运行。但经过一两次,它就停止提供任何输出。这是为什么。我必须再次关闭笔记本打开它然后再运行几次和同样的问题。

I am using iPython to do some coding. When I open the notebook and run some codes by doing SHIFT+ENTER it runs. But after one or two times, it stops giving any output. Why is that. I have to shutdown the notebook again open it and then it runs for few times and same problem again.

这是我用过的代码。

Cell Toolbar:
Question 1: Rotational Invariance of PCA
I(1): Importing the data sets and plotting a scatter plot of the two.
In [1]:

# Channging the working directory
import os
os.getcwd()
path="/Users/file/"
os.chdir(path)
pwd=os.getcwd()
print(pwd)

# Importing the libraries

import pandas as pd
import numpy as np
import scipy as sp

# Mentioning the files to be imported
file=["2d-gaussian.csv","2d-gaussian-rotated.csv"]
# Importing the two csv files in pandas dataframes
XI=pd.read_csv(file[0],header=None)
XII=pd.read_csv(file[1],header=None)
#XI
XII



Out[5]:
0   1
0   1.372310    -2.111748
1   -0.397896   1.968246
2   0.336945    1.338646
3   1.983127    -2.462349
4   -0.846672   0.606716
5   0.582438    -0.645748
6   4.346416    -4.645564
7   0.830186    -0.599138
8   -2.460311   2.096945
9   -1.594642   2.828128
10  3.767641    -3.401645
11  0.455917    -0.224665
12  2.878315    -2.243932
13  -1.062223   0.142675
14  -0.698950   1.113589
15  -4.681619   4.289080
16  0.411498    -0.041293
17  0.276973    0.187699
18  1.500835    -0.284463
19  -0.387535   -0.265205
20  3.594708    -2.581400
21  2.263455    -2.660592
22  -1.686090   1.566998
23  1.381510    -0.944383
24  -0.085535   -1.697205
25  1.030609    -1.448967
26  3.647413    -3.322129
27  -3.474906   2.977695
28  -7.930797   8.506523
29  -0.931702   1.440784
... ... ...
70  4.433750    -2.515612
71  1.495646    -0.058674
72  -0.928938   0.605706
73  -0.890883   -0.005911
74  -2.245630   1.333171
75  -0.707405   0.121334
76  0.675536    -0.822801
77  1.975917    -1.757632
78  -1.239322   2.053495
79  -2.360047   1.842387
80  2.436710    -1.445505
81  0.348497    -0.635207
82  -1.423243   -0.017132
83  0.881054    -1.823523
84  0.052809    1.505141
85  -2.466735   2.406453
86  -0.499472   0.970673
87  4.489547    -4.443907
88  -2.000164   4.125330
89  1.833832    -1.611077
90  -0.944030   0.771001
91  -1.677884   1.920365
92  0.372318    -0.474329
93  -2.073669   2.020200
94  -0.131636   -0.844568
95  -1.011576   1.718216
96  -1.017175   -0.005438
97  5.677248    -4.572855
98  2.179323    -1.704361
99  1.029635    -0.420458
100 rows × 2 columns
The two raw csv files have been imported as data frames. Next we will concatenate both the dataframes into one dataframe to plot a combined scatter plot
In [6]:

# Joining two dataframes into one. 
df_combined=pd.concat([XI,XII],axis=1,ignore_index=True)
df_combined

Out[6]:
0   1   2   3
0   2.463601    -0.522861   1.372310    -2.111748
1   -1.673115   1.110405    -0.397896   1.968246
2   -0.708310   1.184822    0.336945    1.338646
3   3.143426    -0.338861   1.983127    -2.462349
4   -1.027700   -0.169674   -0.846672   0.606716
5   0.868458    -0.044767   0.582438    -0.645748
6   6.358290    -0.211529   4.346416    -4.645564
7   1.010685    0.163375    0.830186    -0.599138
8   -3.222466   -0.256939   -2.460311   2.096945
9   -3.127371   0.872207    -1.594642   2.828128
10  5.069451    0.258798    3.767641    -3.401645
11  0.481244    0.163520    0.455917    -0.224665
12  3.621976    0.448577    2.878315    -2.243932
13  -0.851991   -0.650218   -1.062223   0.142675
14  -1.281659   0.293194    -0.698950   1.113589
15  -6.343242   -0.277567   -4.681619   4.289080
16  0.320172    0.261774    0.411498    -0.041293
17  0.063126    0.328573    0.276973    0.187699
18  1.262396    0.860105    1.500835    -0.284463
19  -0.086500   -0.461557   -0.387535   -0.265205
20  4.367168    0.716517    3.594708    -2.581400
21  3.481827    -0.280818   2.263455    -2.660592
22  -2.300280   -0.084211   -1.686090   1.566998
23  1.644655    0.309095    1.381510    -0.944383
24  1.139623    -1.260587   -0.085535   -1.697205
25  1.753325    -0.295824   1.030609    -1.448967
26  4.928210    0.230011    3.647413    -3.322129
27  -4.562678   -0.351581   -3.474906   2.977695
28  -11.622940  0.407100    -7.930797   8.506523
29  -1.677601   0.359976    -0.931702   1.440784
... ... ... ... ...
70  4.913941    1.356329    4.433750    -2.515612
71  1.099070    1.016093    1.495646    -0.058674
72  -1.085156   -0.228560   -0.928938   0.605706
73  -0.625769   -0.634129   -0.890883   -0.005911
74  -2.530594   -0.645206   -2.245630   1.333171
75  -0.586007   -0.414415   -0.707405   0.121334
76  1.059484    -0.104132   0.675536    -0.822801
77  2.640018    0.154351    1.975917    -1.757632
78  -2.328373   0.575707    -1.239322   2.053495
79  -2.971570   -0.366041   -2.360047   1.842387
80  2.745141    0.700888    2.436710    -1.445505
81  0.695584    -0.202735   0.348497    -0.635207
82  -0.994271   -1.018499   -1.423243   -0.017132
83  1.912425    -0.666426   0.881054    -1.823523
84  -1.026954   1.101637    0.052809    1.505141
85  -3.445865   -0.042626   -2.466735   2.406453
86  -1.039549   0.333189    -0.499472   0.970673
87  6.316906    0.032272    4.489547    -4.443907
88  -4.331379   1.502719    -2.000164   4.125330
89  2.435918    0.157511    1.833832    -1.611077
90  -1.212710   -0.122350   -0.944030   0.771001
91  -2.544347   0.171460    -1.677884   1.920365
92  0.598670    -0.072133   0.372318    -0.474329
93  -2.894802   -0.037809   -2.073669   2.020200
94  0.504119    -0.690281   -0.131636   -0.844568
95  -1.930254   0.499670    -1.011576   1.718216
96  -0.715406   -0.723096   -1.017175   -0.005438
97  7.247917    0.780923    5.677248    -4.572855
98  2.746180    0.335849    2.179323    -1.704361
99  1.025371    0.430754    1.029635    -0.420458
100 rows × 4 columns
Plotting two separate scatter plot of all the four columns onto one scatter diagram
In [ ]:

import matplotlib.pyplot as plt

# Fucntion for scatter plot

def scatter_plot():

    # plots scatter for first two columns(Unrotated Gaussian data)
    plt.scatter(df_combined.ix[:,0], df_combined.ix[:,1],color='red',marker='+')
    # plots scatter for Rotated Gaussian data
    plt.scatter(df_combined.ix[:,2], df_combined.ix[:,3] ,color='green', marker='x')
    legend = plt.legend(loc='upper right')
# set ranges of x and y axes
    plt.xlim([-12,12])
    plt.ylim([-12,12])
    plt.show()

# Function call
scatter_plot()



In [ ]:

def plot_me1():

    # create figure and axes
    fig = plt.figure()
    # split the page into a 1x1 array of subplots and put me in the first one (111)
    # (as a matter of fact, the only one)
    ax = fig.add_subplot(111)

    # plots scatter for x, y1
    ax.scatter(df_combined.ix[:,0], df_combined.ix[:,1], color='red', marker='+', s=100)
    # plots scatter for x, y2
    ax.scatter(df_combined.ix[:,2], df_combined.ix[:,3], color='green', marker='x', s=100)
    plt.xlim([-12,12])
    plt.ylim([-12,12])
    plt.show()

plot_me1()
In [ ]:


推荐答案

你不应该使用<注释中的code> plt.show()书。这将打开一个阻止对单元格进行评估的外部窗口。

You should not use plt.show() in the notebook. This will open an external window that blocks the evaluation of your cell.

而是以%matplotlib内联开始您的笔记本或酷酷的新%matplotlib笔记本(后者只能在 matplotlib > = 1.4.3和<$ c时使用$ c> ipython > = 3.0)

Instead begin your notebooks with %matplotlib inline or the cool new %matplotlib notebook (the latter is only possible with matplotlib >= 1.4.3 and ipython >= 3.0)

评估每个单元格后,(仍然打开的)图形对象会自动显示在笔记本中。

After the evaluation of each cell, the (still open) figure object is automatically shown in your notebook.

这个最小的代码示例适用于笔记本电脑。请注意,它不会调用 plt.show()

This minimal code example works in notebook. Note that it does not call plt.show()

%matplotlib inline
import matplotlib.pyplot as plt

x = [1,2,3]
y = [3,2,1]

_ = plt.plot(x,y)

%matplotlib inline 只显示图像。

%matplotlib inline simply displays the image.

<$ c $最近添加了c>%matplotlib笔记本并提供了交互式后端的许多很酷的功能(缩放,测量......):

%matplotlib notebook was added recently and offers many of the cool features (zooming, measuring,...) of the interactive backends:

这篇关于IPython笔记本在plt.show()之后停止评估单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆