2017-05-16 3 views
0

음, gnuplot은 데이터 처리 시스템이 아니라 플로팅 소프트웨어라는 것을 이해합니다. 하지만 어쨌든 ...gnuplot에서 regex로 필터링 된 선택된 열의 합

python-pandas에서 regex to dataframe을 전달하여 여러 열을 선택할 수 있습니다. df.filter(regex = '\.x$')은 'sw0.x', 'sw1.x'등의 열을 반환합니다. 그런 다음이를 합하여 플롯 할 수 있습니다.

최근에 나는 pgfplots (latex)으로 옮겼으며 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 등을 작성하는 경우