所以我试图在gnuplot中使用pm3d制作一个情节。不幸的是,我似乎遇到了创建绘图的问题,没有点或线。
以下是生成点的程序代码:
#include<stdio.h>
#include<math.h>
int main() {
double x = -10000;
double y = 0;
double z = 0;
FILE *cool = fopen("coolbeans.txt", "w");
fprintf(cool, "#x\ty\tz\n");
for (int i = 0; 1 < 10000; i++) {
x = x + 10;
y = sqrt(abs(x));
z = -200*(sin(x));
fprintf(cool, "%1.0f\t%f\t%f\n\n", x, y, z);
}
fclose(cool);
return 0;
}
接下来我打开gnuplot并输入以下命令:
set term jpeg size 3200, 1800
set output 'example.jpg'
splot 'coolbeans.txt' using 1:2:3 with pm3d
然后我明白了:
非常感谢任何帮助!
答案 0 :(得分:1)
我不确定你为什么想用pm3d绘制那个(x,y,z)。
无论如何,pm3d的常用用法如下C程序。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int i, j;
int nx = 10, ny = 10;
double dx = 0.1, dy = 0.1;
double x, y, z;
FILE *fp;
if((fp = fopen("output.dat", "w")) == NULL) exit(0);
for(i = 0; i <= nx; i++){
for(j = 0; j <= ny; j++){
x = (double)i*dx;
y = (double)j*dy;
z = sin(2.0*M_PI*x)*cos(2.0*M_PI*y);
fprintf(fp, "%e %e %e\n", x, y, z);
}
fprintf(fp, "\n");
}
fclose(fp);
}
重点是在x方向的每个循环中输入空行。