gnuplot 초보 (원라이너 중심) #2
전제
-p 는 OS X 라면 그 나름대로 설정하지 않으면 사용할 수 없습니다.
-p가 설정되어 있지 않은 환경에서는 ~/.gnuplot 파일을 설정하고, 바꾸고 나서 읽으면 좋을지도( #1 의 마지막으로 접하고 있습니다).
그리기 관계
다중 파일 플롯
$ gnuplot -p -c <( echo 'plot for [ i = 1:ARGC ] ARGV[i] w l ; ' ) rand.txt rand2.txt
rand.txt/rand2.txt 는 이전 녀석 과 동일
다중 열 플롯
행을 동적으로 변경시켜 플롯시킬 수도 있습니다.
$ perl -le 'print join " ", $_, rand (10), rand(10) for 0 .. 99' > randml.txt
$ gnuplot -p -c <( echo 'plot for [ i = 1:2 ] ARG1 u 1:(column(i+1)) w l ; ' ) randml.txt
솔직하게, column 함수를 사용하는, perl 의 소프트 레퍼런스적인 방식으로, u 1:($$i) 같은 일을 할 수 없는지 찾아 빠졌다.
시간축 사용
ISO 8601
축을 ISO 8601 형식으로도 할 수 있어요.
Backslash-octals(\nnn) are converted to char
T는\124로 지정해야 한다.
set xdata time
set timefmt "%Y-%m-%d\124%H:%M:%S"
여기조차 조심하면, range 지정시라든가는, 보통으로 T 를 매입하면 된다(format x 의 때도).
그래서 밀리 세컨드를 지정하는 방법은
Gnuplot tracks time to millisecond precision. Time formats have been modified to match this.
그렇다고, %.3S
라든지로 지정한다.
$ cat .gnuplot
set xdata time
set timefmt "%Y-%m-%d\124%H:%M:%S"
set format x "%H:%M:%.3S"
set xtics rotate by 90 right
$ perl -le 'printf "2019-03-08T00:00:00.%02d %s\n", $_ ,rand (10) for 0 .. 99' > randwt.txt
$ gnuplot -p -c <( echo 'load ".gnuplot"; plot ARG1 u 1:2 w l' ) randwt.txt
상당히 몰랐다.
시간축에서 STATS
시간축의 stats은, 불쾌한 결과가 나오기 때문에 묵살한다. 시간 축이 아닌 축 stats는 신용할 수 있다 1 .
$ gnuplot -p -c <( echo 'stats ARG1 nooutput; print STATS_index_min_y, STATS_min_y' ) randwt.txt
6 0.00668365412220595
Y축의 값에서 X축의 값을 역 빼는 것은 STATS_index_* 로 인덱스를 얻을 수 있으므로 그것을 사용한다.
$ perl -lne 'print if $. == 7' randwt.txt
2019-03-08T00:00:00.06 0.00668365412220595
뭐, 랩퍼 안에서의 작업이 되지만.
먼저 시간축의 포맷 지정 등을 하면, stats 커멘드 자체 실행할 수 없다. ↩
Reference
이 문제에 관하여(gnuplot 초보 (원라이너 중심) #2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/bunzaemon/items/24d5b36879758c38ff71
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ gnuplot -p -c <( echo 'plot for [ i = 1:ARGC ] ARGV[i] w l ; ' ) rand.txt rand2.txt
$ perl -le 'print join " ", $_, rand (10), rand(10) for 0 .. 99' > randml.txt
$ gnuplot -p -c <( echo 'plot for [ i = 1:2 ] ARG1 u 1:(column(i+1)) w l ; ' ) randml.txt
ISO 8601
축을 ISO 8601 형식으로도 할 수 있어요.
Backslash-octals(\nnn) are converted to char
T는\124로 지정해야 한다.
set xdata time
set timefmt "%Y-%m-%d\124%H:%M:%S"
여기조차 조심하면, range 지정시라든가는, 보통으로 T 를 매입하면 된다(format x 의 때도).
그래서 밀리 세컨드를 지정하는 방법은
Gnuplot tracks time to millisecond precision. Time formats have been modified to match this.
그렇다고,
%.3S
라든지로 지정한다.$ cat .gnuplot
set xdata time
set timefmt "%Y-%m-%d\124%H:%M:%S"
set format x "%H:%M:%.3S"
set xtics rotate by 90 right
$ perl -le 'printf "2019-03-08T00:00:00.%02d %s\n", $_ ,rand (10) for 0 .. 99' > randwt.txt
$ gnuplot -p -c <( echo 'load ".gnuplot"; plot ARG1 u 1:2 w l' ) randwt.txt
상당히 몰랐다.
시간축에서 STATS
시간축의 stats은, 불쾌한 결과가 나오기 때문에 묵살한다. 시간 축이 아닌 축 stats는 신용할 수 있다 1 .
$ gnuplot -p -c <( echo 'stats ARG1 nooutput; print STATS_index_min_y, STATS_min_y' ) randwt.txt
6 0.00668365412220595
Y축의 값에서 X축의 값을 역 빼는 것은 STATS_index_* 로 인덱스를 얻을 수 있으므로 그것을 사용한다.
$ perl -lne 'print if $. == 7' randwt.txt
2019-03-08T00:00:00.06 0.00668365412220595
뭐, 랩퍼 안에서의 작업이 되지만.
먼저 시간축의 포맷 지정 등을 하면, stats 커멘드 자체 실행할 수 없다. ↩
Reference
이 문제에 관하여(gnuplot 초보 (원라이너 중심) #2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/bunzaemon/items/24d5b36879758c38ff71텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)