데이터
ID BlockSize Size Blocks
- 511.991 241520288 471728
001 511.868 24152000 47184
0001 503.2 241520 480
00001 510.829 2415200 4728
000001 511.360 4782240 9352
0000001 486.935 120760 248
000 511.889 24103840 47088
0000 493.265 193360 392
00000 511.019 2367040 4632
000000 511.262 4830400 9448
0000000 483.4 96680 200
내가 원하는 곳
- 3:4열은 플롯팅에 사용됩니다.
- 2:6 행에서 그래프 그리기
- 또 다른 시작은 7:11입니다
이걸 토대로 시작했어요블로그 게시물
set terminal qt;
plot "<(sed -n '2,6p' sandboxgp.data)" using 3:4 with lines;
plot "<(sed -n '7,11p' sandboxgp.data)" using 3:4 with lines;
단지 그래프를 제공할 뿐입니다.
마르코의 결과물
명확성을 위해 y축에 로그 눈금을 두었습니다. 일부 코드는 다음을 기반으로 합니다.답변
set terminal qt;
plot "<(sed -n '2,6p' sandbox_gp_pure.data)" using 3:4 with linespoints;
replot "<(sed -n '7,11p' sandbox_gp_pure.data)" using 3:4 with linespoints;
set logscale y 10;
set xlabel "Size"; set ylabel "log(Blocks)";
set grid xtics ytics mxtics mytics lc rgb 'blue' lt 1, lc rgb 'red' lt 1; set mxtics; set mytics 5;
set out;
주다
답변1
명령을 사용하지 말고 replot
대신 쉼표를 사용하십시오.,
스크립트에서 해당 명령을 사용해야 할 뚜렷한 이유가 없기 때문에 replot
간단히 쉼표를 사용하여 ,
플롯하려는 두 곡선을 구분하는 것이 좋습니다 plot sin(x), cos(x)
.
좋은 습관이라고 생각하세요. 하지만 원칙적으로는 좀 더 다릅니다(아래 참조).\
한 줄을 마지막 문자로 나누는 것이 흥미로울 수도 있습니다 (그 뒤에는 공백이나 다른 문자가 필요하지 않습니다). 스크립트를 더 깔끔하게 만듭니다.
# ...
set style data linespoint # To avoid to repeat it on each line of plot command
# Note below no spaces after the `\`
plot "<(sed -n '2,6p' sandbox_gp_pure.data)" using 3:4 \
, "<(sed -n '7,11p' sandbox_gp_pure.data)" using 3:4
replot
대신 명령을 사용하세요각 곡선을 다시 그립니다.그래프에 이미 존재하며(데이터를 다시 읽고 다음 작업을 모두 다시 수행)뒤쪽에새로운 곡선을 그립니다.
이것은 좋은 습관이기 때문에내일 스크립트를 다시 사용하려면 일반천천히 해파일이 많거나 크거나 원격 파일 시스템에 있는 경우, 데이터를 처리하기 위해 긴 작업을 수행하는 경우 및 연결을 통해 작업하는 경우 창의 작업을 기다려야 하는 경우 업데이트할 그래픽 더보기 ssh -X
...
또한 pdfcairo
터미널 에서는
set terminal pdfcairo; set output 'my.pdf' ;
plot sin(x)
replot cos(x)
set output ; set terminal qt # or whatever is your default terminal
2페이지짜리 문서와 더 큰 PDF 파일을 받게 됩니다.
every
참고: 서브셸을 생성하거나 ()
외부 프로그램을 호출 하지 않고도 이 키워드를 사용할 수 있습니다 sed
.선주문그들과유형, 다음 스타일을 추가하여 smooth unique
데이터 세트를 그릴 수 있습니다linespoints
좋다좌표 별로 항목이 정렬됩니다 x
.
plot "sandbox_gp_pure.data" every ::1::5 us 3:4 t "set 1" w linesp \
, '' every ::6::10 us 3:4 t "set 2" w linesp
아니면 주문하고 싶으시다면
plot "sandbox_gp_pure.data" every ::1::5 u 3:4 smooth unique t "set 1" w linesp\
, '' every ::6::10 u 3:4 smooth unique t "set 2" w linesp
sed
또 다른 장점은 휴대성입니다. Windows 환경에서도 설치가 없는 경우에도 작동합니다.
당신은 알 수 있습니다전화 번호로 시작하기 때문입니다 0
.
각 블록의 첫 번째 데이터는 파일의 첫 번째 블록과 마찬가지로 "0"으로 번호가 지정됩니다.
이것gnuplot help replot
산출:
인수가 없는 명령은
replot
마지막plot
또는splot
명령을 반복합니다. 이는set
다양한 옵션이 포함된 플롯을 보거나 여러 장치에 대해 동일한 플롯을 생성할 때 유용합니다.명령 뒤에 지정된 매개변수
replot
는 마지막plot
또는splot
명령(암시적 "," 구분 기호 포함) 반복하기 전에.
답변2
replot
대신 plot
두 번째 플롯을 사용하십시오 . 그러면 첫 번째 플롯을 덮어쓰지 않습니다.
# will plot one graph
gnuplot -p -e 'plot sin(x); plot cos(x)'
# will plot two graphs
gnuplot -p -e 'plot sin(x); replot cos(x)'