我试图从Swift中调用gunplot来生成一些.png格式的图形,但是下面的程序不起作用——生成的1.png文件为空。如果我去掉"set term aqua",它确实会调用窗口并展示图形。然而,当我尝试将输出设置为文件(png或pdf)时,结果总是一个空文件。
gnuplot的命令正确——我可以手动正常运行它们。
gnuplot的命令正确——我可以手动正常运行它们。
import Foundation
let task = NSTask()
task.launchPath = "/opt/local/bin/gnuplot"
task.currentDirectoryPath = "~"
let pipeIn = NSPipe()
task.standardInput = pipeIn
task.launch()
let plotCommand: NSString =
"set term png\n" +
"set output \"1.png\"\n"
"plot sin(x)\n" +
"q\n"
pipeIn.fileHandleForWriting.writeData(plotCommand.dataUsingEncoding(NSUTF8StringEncoding)!)
我对Swift和管道都很陌生,如果以下代码有任何错误或不建议使用的地方,请告诉我。
swift
,但如果我是你,我会尝试以下两种方法:1. 在文件名"set output \"1.png\"\n"
后添加一个换行符(你漏了 __\n__)。2. 在"q\n"
之前添加类似"set output \n "
的内容来关闭 gnuplot 中的文件。请告诉我是否有效。 - Hastur"set output \"1.png\"\n" +
(我们错过了 +)。再次让我知道... - Hastur