2012-02-26 10 views
4

Org-modeでは、小さなPython 2-linerのデータをGnuplotに「パイプ」しようとしていますが、これを正しく行う方法がわかりません(Gnuplot画像は0kbのままです)。 )。それは私がその間に持っているどのくらいです:Org-modeコードブロック評価

この作業を行うことができます
#+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が現在動作していないので、私は完全な答えを出すことはできません。ただし、: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 

あなたはdataに何らかの処理を行う必要があり、変数

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

として結果の表を読み込むためにあなたのgnuplotセッションをお勧めします変数がgnuplotコード内で適切な形式であることを確認してください。上で述べたように、私はこれを現在テストすることはできませんが、出発点にすべきです。

+0

もう少し先に進みました。下記をご覧ください。 – dshh2011

0

私は組織平板状を出すためにはPythonをもたらすことができるか、二つの質問で、さらに少し進んきた、そしてどのようにこれは他のgnuplotのブロックによって評価することができる:Pythonは

  1. を行うことができますreturn [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ブロックlike:| 629 | 884 |)、これまで自動評価に持ち込めなかった。