2017-05-16 18 views
0

まあ、私はgnuplotがデータ処理システムではなくプロットソフトウェアであることを理解しています。しかし、とにかく...gnuplotで正規表現でフィルタリングされた選択されたカラムの合計

python-pandasでは、regex to dataframeなどを渡して複数の列を選択できます。 df.filter(regex = '\.x$')は 'sw0.x'、 'sw1.x'などの列を返します。次にそれらを合計してプロットすることができます。

最近私はpgfplots(ラテックス)に移動しました。大きなデータセットでは、gnuplotをpgfplotsと一緒に使用しています。多くの場合、与えられた正規表現に一致する多くの列の合計をプロットする必要があります。私はplot 'data.csv' SUM("\.x$") every 100 with lineのようなことをしたいと思います。function/macro/whatever SUMは正規表現を受け取り、適切な列の合計を返します。

答えて

1

この場合、この処理部分を「ファンダス」に「アウトソーシングする」必要があります。

plot "<python filter.py data.csv" w lp 

#!/usr/bin/env python 
import pandas as pd 
import sys 

df = pd.read_csv(sys.argv[1], sep = ',', header = 0) 
s = df.filter(regex='\.x$', axis = 1).sum(axis = 1) 
s.to_csv(sys.stdout, sep = '\t') 

あなたはgnuplotのように、それを「再利用」することができます。たとえば、スクリプトfilter.pyなどを作成した場合

関連する問題