gnuplotに適したデータ形式

//出力はやさしいがgnuplotで描写が難しい
void output_result_type1(char *s,double **u,int T,int nn,int p2,int p1,double **nc){
	int i,j,k;
	FILE *fp=fopen(s,"w");
	for(i=0;i<T;i++){
		for(j=0;j<nn;j++){
			if(j==p2 || j==2*p2 || j==2*p2+p1 || j==2*p2+2*p1 || j==2*p2+3*p1)
					fprintf(fp,"\n");
			if(i==0 && j>=2*p2 && j<2*p2+p1)
				fprintf(fp,"%f %f \?\n",nc[j][0],nc[j][1]);
			else	
				fprintf(fp,"%f %f %f\n",nc[j][0],nc[j][1],u[i][j]);
		}
		fprintf(fp,"\n\n");
	}
	fclose(fp);
}
 

//gnuplotネイティブなスタイル
void output_result_type2(int n,int T,int p1,int p2,double **nc,double **u){
	FILE *fp=fopen("test2.txt","w");
	int tmp=2*n+1,tmp2=n+1,num,num2,i,j,k;
	for(i=0;i<T;i++){
		for(j=0;j<tmp;j++)
			for(k=0;k<tmp;k++){
				num=j*tmp+k;
				num2=j/2*tmp2+k/2;
				if(j%2==0 && k%2==0)
					fprintf(fp,"%f %f %f %f %f %f %f %f\n",nc[num][0],nc[num][1],u[i][num],u[i][num+p2],u[i][num2+2*p2],u[i][num2+2*p2+p1],u[i][num2+2*p2+2*p1],u[i][num2+2*p2+3*p1]);
				else
					fprintf(fp,"%f %f %f %f \? \? \? \?\n",nc[num][0],nc[num][1],u[i][num],u[i][num+p2]);
			}
		fprintf(fp,"\n\n");
	}
	fclose(fp);
}
 

#result.txt only
reset
if (exist("n")==0) n=0
set size square
#set size 0.5
set terminal png
set output sprintf("./fig/%d.png",n)
coef=0.1
#coefを使ってミスを防ごう
set multiplot layout 2,2
#i n に注意
p "result2.txt" i n u 1:2:(coef*$3):(coef*$4) w vec t "u" lw 2\
,"" i n u 1:2:(coef*$5) w yerrorbars lw 1 t "p"
p "result2.txt" i n u 1:2:(coef*$6):(coef*$7) w vec lw 2 t "s_1"\
,"" i n u 1:2:(coef*$8):(coef*$9) w vec lw 1 t "s_2"
 
 
t=n*0.125
u1(x,y)=y
u2(x,y)=x
p(x,y)=x-1./2
s11(x,y)=x
s12(x,y)=x
s21(x,y)=x
s22(x,y)=x
p "result2.txt" i n u 1:2:(coef*u1($1,$2)):(coef*u2($1,$2)) w vec t "u" lw 2\
,"" i n u 1:2:(coef*p($1,$2)) w yerrorbars lw 1 t "p"
p "result2.txt" i n u 1:2:(coef*s11($1,$2)):(coef*s21($1,$2)) w vec lw 2 t "s_1"\
,"" i n u 1:2:(coef*s12($1,$2)):(coef*s22($1,$2)) w vec lw 1 t "s_2"
 
unset multiplot
n=n+1
pause 1
if(n<80) reread
 

$ gnuplot result.plt
 

タグ:

+ タグ編集
  • タグ:
最終更新:2010年03月14日 02:38
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。
添付ファイル