gnuplot을 사용하여 FreeFEM ++로 얻은 데이터를 플롯하려고합니다. 나는 다음과 같은 코드로 데이터를 저장 한 FreeFEM에서GNUPLOT에 FreeFEM ++ 데이터 플로팅
:
{ ofstream ff("sol.dat");
for (int i=0;i<Th.nt;i++){
for (int j=0; j<3; j++){
ff<<Th[i][j].x << "\t" << Th[i][j].y << "\t" << u[][Vh(i,j)] << endl;
}
ff<<Th[i][0].x << "\t" << Th[i][0].y << "\t" << u[][Vh(i,0)] << "\n\n\n";
}
} 데이터의 첫 번째 라인의
샘플은 다음과 같습니다
0.635787 -0.0440338 0.0056924
0.65234 -0.063181 0.00797757
0.655369 -0.0412323 0.00795786
0.635787 -0.0440338 0.0056924
0.597634 -0.0376 3.06323e-33
0.613904 -0.0585366 0.0030425
0.616879 -0.0388107 0.0030295
0.597634 -0.0376 3.06323e-33
경우 어떤 이유있는 각 팩에 두 번 반복되는 데이터 포인트가 있는지 모르겠습니다. 그러나 이것이 그들이 FreeFem 설명서에서 당신에게 그렇게 말하는 방법입니다. 분명히 GNUPLOT은 어떤 이유로 '데이터 팩'사이에 공백이 필요합니다.
나는의 gnuplot 스크립트를 사용하여 데이터를 플롯하기 위해 노력하고있어 : 그것은 좋은 플롯하지만 pm3d는 아무것도 아니라고 생각
set pm3d at b
set palette rgbformulae 30,31,32
set hidden3d
splot "sol.dat" with lines palette
. 나는 pm3d가 음모의 바닥에 열 강도의 색깔 패턴을 포함시킬 것이라고 생각했습니다. 또한 솔리드 컬러로 채우는 방법을 줄거리 사이의 틈새로 찾지 못합니다.
감사합니다.
pm3d, hidden3d, lines palette 등 여러 가지를 섞어서 사용하고 싶습니다. 멋진 그림을 원하는 것처럼 보입니다 ... pm3d를 사용하려면 * one * 행으로 두 개의 데이터 블록을 구분해야합니다. 올바른 구문은'set pm3d at b '입니다. 'pm3d'는 4 개의 점을 사용하여 하나의 색상으로 하나의 사각형을 만들기 때문에 한 점을 두 번 더 추가해야합니다. '4x4' 행렬은'3x3' 색 사각형으로 나타납니다. 말로, 당신의 줄거리가 어떻게 보일 것인가 (줄을 어떻게 표시 할 것인가, 어떻게 표면을?, pm3d 만 기지에 숨길 것 등)을 설명해 주시겠습니까? 가지고 계시다시피, 옵션은 함께 맞지 않습니다. – Christoph
@Christoph, 고마워. 나는 오타를 수정하고 내가 원하는 것을 더 잘 설명하고 내가 얻은 것을 이미지로 포함시켰다. 해당 명령이 호환되지 않는다는 것을 알지 못했습니다. –