小编Mic*_*ael的帖子

Eclipse Pydev:运行选定的代码行

Eclipse Pydev中是否有一个命令允许我只在较大的脚本中运行一些选定的(突出显示的)代码行?

如果没有,是否可以一次在PyDev控制台中运行多行代码?

python eclipse pydev

19
推荐指数
2
解决办法
9641
查看次数

通过Eclipse PyDev进行交互式matplotlib

这是这个交互式matplolib通过eclipse线程的一个跟进,大约2岁,我想知道在此期间是否有任何进展.

我在Eclipse PyDev的控制台窗口中运行IPython控制台,但我无法使用matplotlib获得相同的交互式绘图功能,就像我 Eclipse PyDev 的(Windows)命令提示符中运行IPython一样.以下是两者的比较方式:

A)在Eclipse PyDev外部的shell中运行IPython

  1. 使用"ipython --pylab"在Windows命令提示符下运行IPython
  2. 在IPython控制台中输入"plot([1,2,3])".这将打开一个图形图窗口,IPython控制台已准备好进一步命令(无需关闭图形图窗口).
  3. 例如,我可以输入"xlabel('years')"这将更新我的图形图窗口.

B)在Eclipse PyDev中的交互式控制台中运行IPython在Eclipse PyDev 中的IPython交互式控制台中输入以下内容:

  1. "来自pylab import*"
  2. "plot([1,2,3])" - >图形图窗口不显示.
  3. 我必须输入"show()"来打开图形图窗口.但现在的问题是,只要我保持图形图窗口打开,IPython控制台就不接受任何新命令.
  4. 所以我关闭图形图窗口,输入"xlabel('years')",然后再输入"show()".这将重新打开图形图窗口,其中"years"作为我的轴标签,但是图表本身是空的,不再显示[1,2,3]数据.

有了这种行为,A)显然优于B),但我想继续在Eclipse PyDev中工作,因为我喜欢在我的屏幕上总是有变量列表(无需运行命令来显示所有变量,比如在运行IPython表单时)一个Windows shell).使用Wicked Shell,如其他线程所示,不起作用(IPython在Wicked Shell中无法正常工作).

如何在Eclipse PyDev中配置IPython,以便它显示相同的交互行为,就像我在Windows命令提示符下运行它一样?

python eclipse matplotlib pydev ipython

6
推荐指数
2
解决办法
1万
查看次数

IPython notebook:如何编写可以访问笔记本变量的单元魔法?

我的问题是:如何编写可以访问IPython笔记本命名空间的IPython单元魔术?

IPython允许编写用户定义的单元格魔术.我的计划是创建一个绘图函数,它可以绘制一个或多个任意Python表达式(基于Pandas Series对象的表达式),其中单元格字符串中的每一行都是图表中的单独图形.

这是细胞魔法的代码:

def p(line, cell):
    import pandas as pd
    import matplotlib.pyplot as plt

    df = pd.DataFrame()
    line_list = cell.split('\n')

    counter = 0
    for line in line_list:
        df['series' + str(counter)] = eval(line)      
        counter += 1

    plt.figure(figsize = [20,6])
    ax = plt.subplot(111)
    df.plot(ax = ax)


def load_ipython_extension(ipython):
    ipython.register_magic_function(p, 'cell')
Run Code Online (Sandbox Code Playgroud)

该函数以字符串形式接收整个单元格内容.然后,该字符串由换行符拆分,并使用eval()进行评估.结果将添加到Pandas DataFrame中.最后,使用matplotlib绘制DataFrame.

用法示例:首先在IPython笔记本中定义Pandas Series对象.

import pandas as pd
ts = pd.Series([1,2,3])
Run Code Online (Sandbox Code Playgroud)

然后在IPython笔记本中调用魔法(下面的整个代码是一个单元格):

%%p
ts * 3
ts + 1
Run Code Online (Sandbox Code Playgroud)

此代码失败,并显示以下错误:

NameError: name 'ts' is not defined
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是该p函数只接收ts * …

python ipython ipython-notebook

1
推荐指数
1
解决办法
1981
查看次数

标签 统计

python ×3

eclipse ×2

ipython ×2

pydev ×2

ipython-notebook ×1

matplotlib ×1