Gnuplot에서 for 루프의 동일한 플롯에 함수를 여러 번 플롯하는 방법

다스 빗

gnuplot에서 저는 5 개의 매개 변수가있는 함수를 플로팅하려고합니다. 그 값은 동일한 그래프에 8 번 외부 파일에 저장됩니다. 온도의 함수로 8 종의 증기압을 플로팅하고 싶습니다. 증기압은 5 가지 변수로 매개 변수화됩니다. do-for루프를 사용해 보았지만 한 종만 표시됩니다. 8 개의 매개 변수 세트를 사용하여 동일한 플롯에 함수를 8 번 플롯하려면 어떻게해야합니까? 아래 코드는 이 답변을 기반으로 하며 주어진 답변이 8 개의 png를 인쇄한다는 점을 제외하고 작동하지만 1을 원하며 그렇게하려고 수정했습니다.

parameters.txt

A   B   C   D   E
33.634  -3647.9 -8.6428 -9.69E-11   1.19E-06
19.419  -5869.9 -0.4428 -1.26E-02   5.22E-06
-15.077 -4870.2 14.501  -3.16E-02   1.35E-05
76.1    -5030   -25.078 9.76E-03    -2.58E-13
2.1667  -2631.8 4.035   -1.18E-02   6.10E-06
39.917  -4132   -10.78  1.97E-10    2.04E-06
29.89   -3953.5 -7.2253 2.11E-11    8.96E-07
99.109  -7533.3 -32.251 1.05E-02    1.23E-12

vapor.plt

reset
datafile = "parameters.txt"

set terminal pngcairo
set xrange [273.15:493.15]
set logscale y
set output "vapor.png"
do for [step=1:8] {
    # read parameters from file, where the first line is the header, thus the +1
    a=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $1}' " . datafile)
    b=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $2}' " . datafile)
    c=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $3}' " . datafile)
    d=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $4}' " . datafile)
    e=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $5}' " . datafile)

    # convert parameters to numeric format
    a=a+0.
    b=b+0.
    c=c+0.
    d=d+0.
    e=e+0.

    plot 10**(a + b/x + c*log10(x) + d*x + e*x**2) title ''
}
set output
크리스토프

여러 함수를 하나의 그래프에 플로팅하려면 하나의 plot명령 만 사용 하고 함수를 쉼표로 구분해야합니다.

plot f(x), g(x), h(x)

이것은 하나의 그래프에 세 가지 함수를 모두 표시합니다. 귀하의 경우를 들어 당신이 먼저 매개 변수를 추출해야합니다 a1, a2... a8등 이것은 당신이 파라미터 세트에 대한 키 (전설)를 가질 수 있다는 장점이있다.

두 번째 옵션은 기존 스크립트에 더 적합합니다. 다음과 같이 plot호출 해야 합니다 multiplot.

reset
datafile = "parameters.txt"

set terminal pngcairo
set xrange [273.15:493.15]
set logscale y
set output "vapor.png"

set lmargin at screen 0.1
set rmargin at screen 0.9
set bmargin at screen 0.1
set tmargin at screen 0.9

set multiplot
do for [step=1:8] {
    # read parameters from file, where the first line is the header, thus the +1
    a=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $1}' " . datafile)
    b=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $2}' " . datafile)
    c=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $3}' " . datafile)
    d=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $4}' " . datafile)
    e=system("awk '{ if (NR == " . step . "+1) printf \"%f\", $5}' " . datafile)

    # convert parameters to numeric format
    a=a+0.
    b=b+0.
    c=c+0.
    d=d+0.
    e=e+0.

    plot 10**(a + b/x + c*log10(x) + d*x + e*x**2) lt step title ''

    if (step == 1) {
        unset border
        unset xtics
        unset ytics
    }
}
unset multiplot
set output

함께 multiplot국경과 틱 추한 (대담)를 보이는 때마다, 다시 그려야 할 것이다. 이를 위해 첫 번째 플롯 후에 border, xtics 및 ytics를 설정 해제합니다. 그러나 모든 플롯에 대해 동일한 여백을 갖기 위해 처음에는 고정 된 절대 여백을 설정했습니다. 첫 번째 플롯으로 계산되는 자동 여백을 유지할 수 있지만 약간 길다 (문서의 'Gnuplot 정의 변수'항목 참조).

또한 모든 플롯에 다른 선 종류를 사용했습니다. 위의 스크립트는 출력을 제공합니다.

여기에 이미지 설명 입력

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

한 번에 여러 개의 선 플롯을 그리는 방법

분류에서Dev

matplotlib를 사용하여 여러 플롯을 루프의 파일에 저장하는 방법

분류에서Dev

동일한 플롯에 여러 CSV 파일을 상자 플롯으로 플롯하는 방법

분류에서Dev

MATLAB에서 동일한 그래프에 여러 플롯을 만드는 방법

분류에서Dev

for 루프를 사용하여 동일한 그래프에 여러 플롯

분류에서Dev

한 문서의 보케 서버 플롯을 html 파일의 여러 위치에 포함하는 방법

분류에서Dev

R에서`plot_grid`를 사용하여 플롯 배열의 플롯 한 열의 플롯 여백을 줄이는 방법은 무엇입니까?

분류에서Dev

단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

분류에서Dev

gnuplot과 함께 sed를 사용하여 루프의 파일에서 특정 행을 플롯합니다.

분류에서Dev

픽셀 행렬을 사용하여 동일한 플롯에 여러 이미지를 배치하는 방법

분류에서Dev

matplotlib를 사용하여 동일한 플롯에 여러 궤적을 그리는 방법

분류에서Dev

ggplot2의 shapefile을 사용하여 첫 번째 플롯에서 scale_fill_color를 보존하는 방법

분류에서Dev

한 번에 여러 플롯 브러싱

분류에서Dev

플롯에서 루프를 사용하여 둘 이상의 모양을 추가하는 방법

분류에서Dev

플롯 옵션을 한 번 정의하고 여러 서브 플롯에 대해 호출

분류에서Dev

서브 플롯에서 여러 개의 Seaborn Barplots를 플로팅하는 방법은 무엇입니까?

분류에서Dev

Matlab의 한 명령문에서 하나의 플롯에서 여러 그래프를 업데이트하는 방법은 무엇입니까?

분류에서Dev

ggplot2를 사용하여 한 플롯에 여러 문자 변수를 플롯하는 방법은 무엇입니까?

분류에서Dev

Python 3에서 동일한 플롯에 여러 객체의 인스턴스 속성을 그리는 방법

분류에서Dev

루프를 사용하여 R에서 ggplot2를 사용하여 동일한 플롯의 동일한 데이터 프레임에서 여러 xy 플롯을 생성하고 해당 범례를 표시합니다.

분류에서Dev

플롯을 사용하여 산점도에서 세 번째 변수에 대한 두 번째 범례를 표시하는 방법은 무엇입니까?

분류에서Dev

gnuplot의 한 창에서 모든 플롯을 병합하는 방법

분류에서Dev

ggplot2 : 막대 플롯을 동일한 위치에 유지하면서 포인트 플롯의 위치를 변경하는 방법

분류에서Dev

Plotly : plotly.graph_objects를 사용하여 동일한 플롯에 두 개의 3D 그래프를 배치하는 방법은 무엇입니까?

분류에서Dev

R의 동일한 플롯에서 행렬의 여러 열을 그리는 방법은 무엇입니까?

분류에서Dev

Plotly : 동일한 Pandas 데이터 프레임의 다른 열에서 하나의 플롯 차트에 여러 줄을 그리는 방법은 무엇입니까?

분류에서Dev

ggplot2를 사용하여 동일한 플롯 영역 내부의 플롯 확대 / 축소를 플롯하는 방법은 무엇입니까?

분류에서Dev

두 개의 플롯 각각에 1 $의 투자를 플롯하는 방법

분류에서Dev

하나의 플롯에 여러 번의 gbm.step () 실행 플롯

Related 관련 기사

  1. 1

    한 번에 여러 개의 선 플롯을 그리는 방법

  2. 2

    matplotlib를 사용하여 여러 플롯을 루프의 파일에 저장하는 방법

  3. 3

    동일한 플롯에 여러 CSV 파일을 상자 플롯으로 플롯하는 방법

  4. 4

    MATLAB에서 동일한 그래프에 여러 플롯을 만드는 방법

  5. 5

    for 루프를 사용하여 동일한 그래프에 여러 플롯

  6. 6

    한 문서의 보케 서버 플롯을 html 파일의 여러 위치에 포함하는 방법

  7. 7

    R에서`plot_grid`를 사용하여 플롯 배열의 플롯 한 열의 플롯 여백을 줄이는 방법은 무엇입니까?

  8. 8

    단일 플롯 matplotlib에 대한 여러 범례를 생성하는 방법

  9. 9

    gnuplot과 함께 sed를 사용하여 루프의 파일에서 특정 행을 플롯합니다.

  10. 10

    픽셀 행렬을 사용하여 동일한 플롯에 여러 이미지를 배치하는 방법

  11. 11

    matplotlib를 사용하여 동일한 플롯에 여러 궤적을 그리는 방법

  12. 12

    ggplot2의 shapefile을 사용하여 첫 번째 플롯에서 scale_fill_color를 보존하는 방법

  13. 13

    한 번에 여러 플롯 브러싱

  14. 14

    플롯에서 루프를 사용하여 둘 이상의 모양을 추가하는 방법

  15. 15

    플롯 옵션을 한 번 정의하고 여러 서브 플롯에 대해 호출

  16. 16

    서브 플롯에서 여러 개의 Seaborn Barplots를 플로팅하는 방법은 무엇입니까?

  17. 17

    Matlab의 한 명령문에서 하나의 플롯에서 여러 그래프를 업데이트하는 방법은 무엇입니까?

  18. 18

    ggplot2를 사용하여 한 플롯에 여러 문자 변수를 플롯하는 방법은 무엇입니까?

  19. 19

    Python 3에서 동일한 플롯에 여러 객체의 인스턴스 속성을 그리는 방법

  20. 20

    루프를 사용하여 R에서 ggplot2를 사용하여 동일한 플롯의 동일한 데이터 프레임에서 여러 xy 플롯을 생성하고 해당 범례를 표시합니다.

  21. 21

    플롯을 사용하여 산점도에서 세 번째 변수에 대한 두 번째 범례를 표시하는 방법은 무엇입니까?

  22. 22

    gnuplot의 한 창에서 모든 플롯을 병합하는 방법

  23. 23

    ggplot2 : 막대 플롯을 동일한 위치에 유지하면서 포인트 플롯의 위치를 변경하는 방법

  24. 24

    Plotly : plotly.graph_objects를 사용하여 동일한 플롯에 두 개의 3D 그래프를 배치하는 방법은 무엇입니까?

  25. 25

    R의 동일한 플롯에서 행렬의 여러 열을 그리는 방법은 무엇입니까?

  26. 26

    Plotly : 동일한 Pandas 데이터 프레임의 다른 열에서 하나의 플롯 차트에 여러 줄을 그리는 방법은 무엇입니까?

  27. 27

    ggplot2를 사용하여 동일한 플롯 영역 내부의 플롯 확대 / 축소를 플롯하는 방법은 무엇입니까?

  28. 28

    두 개의 플롯 각각에 1 $의 투자를 플롯하는 방법

  29. 29

    하나의 플롯에 여러 번의 gbm.step () 실행 플롯

뜨겁다태그

보관