2012-02-26 116 views
4

在组织模式下,我试图从一个小的Python 2班轮将数据“管”到Gnuplot中,但我无法弄清楚如何正确执行该操作(Gnuplot图像保持0kb )。这是我在此期间得到的多少:组织模式代码块评估

#+NAME: foo 
#+begin_src python :exports code 
    import random 
    for x in range (0,300): 
    print random.randrange(1000), random.randrange(1000) 
#+end_src 

#+begin_src gnuplot :file gnuplot.png :exports results 
    reset 
    plot call_foo notitle 
#+end_src 

谁能做这个工作?

回答

1

我在emacs中的gnuplot目前无法正常工作,所以我无法给出完整的工作答案。但是,Python位的:exports属性应为output,而不是code。此外,要在gnuplot会话中访问这些数据,您可能需要将其作为表格读取。所以,如果你有你的Python代码:

#+name: foo 
#+begin_src python :exports results 
    import random 
    for x in range(0,300): 
     print random.randrange(1000), random.randrange(1000) 
#+end_src 

,你会希望你的gnuplot会议结果的表作为读取变量

#+name: plot-it(data = foo) 
#+begin_src gnuplot :file gnuplot.png 
    plot data notitle 
#+end_src 

你可能需要做的data一些处理gnuplot代码中的变量,以确保它是适当的格式。正如我上面所说,我目前无法测试,但它应该是一个起点。

+0

我已经进一步了解了,请参阅下面的内容。 – dshh2011 2012-02-27 09:11:04

0

我已经与这两个问题,我怎么可以把Python来拿出一个组织的表格,以及如何可以由其他的Gnuplot块评估进行得远一点:Python中可以做

  1. 返回[1,2,3]
  2. print“| 1 | 2 | 3 |”:结果输出的原始
  3. 打印[A,B,C]为:结果输出表

我已经与evalutation succeedes与此代码块的位置:

#+srcname: foo 
#+begin_src python :results output raw :exports code 
    import random 
    out="| %s | %s |" 
    for x in range(0, 300): 
      pair=(random.randrange(1000), random.randrange(1000)) 
      print out % pair 
#+end_src 

#+begin_src gnuplot :var data=foo :file gnuplot.png :exports results 
    reset 
    set terminal png size 500,375 
    plot data u 1:2 notitle 
#+end_src 

但是,通过这种设置,我总是必须“手工”执行Python块以生成#+结果:foo块(其中包括行如:| 629 | 884 |),并且迄今为止无法对其进行自动评估。