[英]wxPython, PyQwt or C# for plotting graph and manually drawing lines on plot
[英]Plotting graph in GNU PLOT using C#
我有一个dat文件insert.dat
内容如下:
1000 0.002322044 0.00291182
5000 0.000103257 0.000458963
10000 2.50E-05 0.000172019
20000 6.18E-06 6.03E-05
40000 2.51E-06 2.65E-05
60000 1.65E-06 1.71E-05
80000 1.21E-06 1.23E-05
100000 1.01E-06 9.97E-06
当我打开gnuplot.exe
并键入带有行的plot insert.dat
时,会得到正确的输出,但是当我编写C#代码时,如下所示:
private void GNUPlot()
{
string pgm = @"E:\gnuplot\bin\gnuplot.exe";
Process extPro = new Process();
extPro.StartInfo.FileName = pgm;
extPro.StartInfo.UseShellExecute = false;
extPro.StartInfo.Standardization = true;
extPro.Start();
StreamWriter gnupStWr = extPro.StandardInput;
gnupStWr.WriteLine("plot \"insert.dat\" with lines ");
gnupStWr.Flush();
}
我收到以下警告:
warning: Skipping unreadable file "insert.dat"
当我更换
gnupStWr.WriteLine("plot \"insert.dat\" with lines ");
同
gnupStWr.WriteLine("plot sin(x) ");
我得到所需的Sin(x)
图输出。
insert.dat
在gnuplot
的当前目录中。 我想绘制insert.dat
文件数据。
问题似乎是gnuplot找不到所需的文件。 进程的工作目录未设置为gnuplot目录,但可能设置为正在调用gnuplot的应用程序的目录。
编辑尝试extPro.Start()
添加到extPro.Start()
命令之前的代码中:
extPro.StartInfo.WorkingDirectory = @"E:\gnuplot\bin";
要么
Environment.CurrentDirectory = @"E:\gnuplot\bin";
如果这不起作用,则可能是因为您的应用程序对该目录没有读取权限。 尝试将您的insert.dat文件放在任何客户端应用程序都可以肯定地访问的目录中。
顺便说一句,我也无法识别您正在使用的Standardization
属性? 该行应改为:
extPro.StartInfo.RedirectStandardInput = true;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.