在Org-mode中,我试图将一些Python 2-liner的数据“管道”到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
谁可以使这项工作?
答案 0 :(得分: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
您可能需要对gnuplot代码中的data
变量进行一些处理,以确保它是适当的格式。如上所述,我目前无法测试,但它应该是一个起点。
答案 1 :(得分:0)
我对这两个问题进行了一些进一步的讨论,如何让Python发布一个Org表格,以及如何通过另一个Gnuplot块来评估它:Python可以做什么
我已成功使用此代码块进行评估:
#+name: 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块来生成#+ results:foo 块(包括以下行: | 629 | 884 | < / em>),到目前为止无法进行自动评估。
编辑:将#+srcname:
替换为#+name:
,因为自{8} Orgmode 7.8以来#+srcname:
已过时。以前版本的Orgmode代码#+srcname:
confused another user。