我通过Homebrew安装了Octave和gnuplot,并下载了AquaTerm.dmg。当我尝试绘图时,我收到以下消息:
octave:4> plot(x,y)
gnuplot> set terminal aqua enhanced title "Figure 1" font "*,6"
^
`line 0: unknown or ambiguous terminal type; type just 'set terminal' for a list`
在一个bash终端set terminal
,set Terminal
,set term
,(以及同样,其次是“aqua”)等也没有给出任何东西。我已经尝试从八度音阶再次绘制“AquaTerm”已经打开,但没有。我已经尝试直接从gnuplot绘图,但同样的问题..我怎么能这样做“设置终端aqua”?
Gnuplot开始消息说“Terminal type set to 'x11'
”,但不知道如何更改它,以前的命令也不起作用。
由于AquaTerm没有从Homebrew安装,也许octave / gnupot找不到它......但不知道。有什么猜测?谢谢!
我不得不将setenv("GNUTERM","X11")
添加到OCTAVE_HOME/share/octave/site/m/startup/octaverc
(OCTAVE_HOME通常是/ usr / local)以使其永久工作。
解决方案发现和更多细节:http://www.mac-forums.com/forums/os-x-apps-games/242997-plots-octave-dont-work.html
我有一个答案可以解决你遇到的问题。从本质上讲,问题是gnuplot构建没有找到合适的AquaTerm库。看看我发的帖子:
http://deveneezer.blogspot.com/2013/06/octave-gnuplot-and-aquaterm.html
就我而言,在Mas OS Mojave上,适用于我的解决方案略有不同(可能只是语法问题)。在讨论之后on this thread我找到了适用于我的解决方案 - 可能需要注意的是,我可以直接在终端中从Octave-cli而不是Octave命令行进行绘图。
所以我创建了一个˜/.octaverc
文件并添加了以下命令:
setenv GNUTERM qt
只需从八度音阶退出命令行并再次输入并能够绘制。
对我有用的是安装gnuplot-nox。另见https://bugs.mageia.org/show_bug.cgi?id=4866
似乎安装gnuplot-nox的最佳方法是安装fink。 http://sourceforge.net/projects/fink/?source=dlp
fink install gnuplot-nox
似乎做得很好。但是安装失败了。所以我安装了gnuplot-minimal然后再次运行gnuplot-nox安装,一切正常。
fink install gnuplot-minimal
fink install gnuplot-nox
gnuplot-nox install似乎已将aqua设置为gnuplot的默认终端。通过转到gnuplot shell验证。要验证绘图是否有效,请在shell中键入plot(1)。它应该在窗口中显示情节。
希望对你有用。
与其他帖子中的建议一样,将GNUTERM设置为X11并不能解决这个问题。直接安装适用于Mac OSX的AquaTerm也无法解决此问题。
答案已包含在上面,但我认为这更简单:
nano ~/.octaverc
添加这个:
setenv("GNUTERM", "X11")
多数民众赞成重启八度,你完成了。
以下事情对我有用:
setenv("GNUTERM","qt")
你可以在octave cli上运行它,进行本地运行,也可以在octave启动文件中设置为永久运行。
/usr/local/octave/3.8.0/share/octave/site/m/startup/octaverc
请记住,如果您更改octaverc文件,则必须具有写入权限。
这是适合我的解决方案(基于mackuntu评论的不同部分)
可能已经通过brew install octave命令为您安装了Gnuplot,因此我们需要先将其删除
brew uninstall gnuplot
然后必须安装aquaterm(http://sourceforge.net/projects/aquaterm/)
安装完成后,您需要再次安装gnuplot。这是因为brew在安装过程中检测到aquaterm的存在,之后不会对其进行任何检查。
brew install gnuplot --with-aquaterm
如果在安装后启动gnuplot,则应显示支持aquaterm。八度音阶中的所有图形都可以使用。
在OS X 10.9.1上,我遇到了Octave-cli版本3.8.0的类似问题。观察Octave-gui如何仍然可以绘制图表,并通过octaverc读取答案,我已经通过在/usr/local/octave/3.8.0/share/octave添加setenv("GNUTERM","qt")
一行来从Octave-cli开始工作/站点/米/启动/ octaverc
我没有必要重新安装gnuplot或其他依赖项。
将终端类型设置为x11可以解决问题,但是如果你想让AquaTerm使用gnuplot,那么如何:
首先,我们需要卸载现有的gnuplot安装,打开终端并运行此命令。
brew uninstall gnuplot
从这里下载AquaTerm:http://sourceforge.net/projects/aquaterm/并像安装任何OSX应用程序一样安装。
从这里开始,有两种方法让gnuplot对aquaterm感到满意,方法1更容易,但是对我来说不起作用,因为我的AquaTerm安装没有在/ usr / local / lib中创建正确的符号链接,方法2是一个对我有用的,我正在分享我为使它工作所采取的步骤。
方法1:安装AquaTerm之后只需重新安装gnuplot似乎可以解决这个问题。
brew install gnuplot
转到验证步骤以查看是否一切正常,如果没有,请按照方法2进行操作
方法2:这种方法更先进,但如果您有耐心,可以保证工作。
基本上gnuplot找不到AquaTerm库文件,这就是为什么在安装gnuplot之后aqua不会显示为终端类型选项的原因。我们需要修改gnuplot的自制软件配方以启用aquaterm支持,通过输入以下内容打开gnuplot的brew配方:
brew edit gnuplot
并添加这些行,如此github提交消息所示,这将使gnuplot的brew选项包括aquaterm https://github.com/mxcl/homebrew/issues/14647#issuecomment-21132477
通过执行以下检查来检查是否存在正确的AquaTerm库符号链接:
ls /usr/local/lib/libaquaterm*
ls /usr/local/include/aquaterm/*
上面的第一行应该返回一些* .dylib文件,上面的第二行应该返回一些* .h文件,如果它们不存在则从终端运行这些命令:
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/AquaTerm /usr/local/lib/libaquaterm.1.0.0.dylib
sudo ln -s /Library/Frameworks/AquaTerm.framework/Versions/A/Headers/* /usr/local/include/aquaterm/.
这有时是必要的,因为AquaTerm的安装程序由于权限问题而无法在正确的位置创建符号链接。创建/ usr / local / symlinks后,重新安装gnuplot,如下所示:
brew install gnuplot --with-aquaterm # (formerly --aquaterm in old versions)
验证gnuplot可以使用以下步骤查看aquaterm并快乐绘图!
验证:通过在终端中启动gnuplot,gnuplot正确配置了AquaTerm
gnuplot
在gnuplot终端中输入
gnuplot> set term
寻找线
Available terminal types:
aqua Interface to graphics terminal server for Mac OS X
...
如果你看到上面那一行,那么你就完成了,gnuplot配置正确,每个人都很开心。
我找到了一种生成八度音的情节的方法,虽然不是使用AquaTerm而是使用x11。问题是Octave正在“强迫”gnuplot使用aquaterm进行策划。而不是安装和集成aquaterm到gnuplot,八度键入:setenv GNUTERM x11
。这样,使用x11生成绘图,x11已经在gnuplot(set terminal
)的终端列表中。我知道这是一个补丁,但最后我不介意aquaterm或x11,我只想生成情节
set terminal
或set term
是gnuplot命令。
您只需要从命令行运行gnuplot
即可访问gnuplot shell。
然而,这对我来说不起作用,setenv("GNUTERM","x11")
或/usr/local/share/octave/site/m/startup/octaverc
中的~/.octaverc
也没有用(两者都做同样的事情)。
所以我在gnuplot shell中运行了set term
,因为在列表中看不到x11
。我使用自制软件来安装gnuplot,所以我先卸载它brew uninstall gnuplot
,然后使用x11
标志安装--with-x
:
brew install gnuplot --with-x
这解决了我的问题。使用brew info gnuplot
查看gnuplot安装的标志列表。
附:是的,我确实下载了一个X11 dmg并使用软件包安装程序安装它,仍然gnuplot在支持的终端列表中没有x11。
你可以试试这个:
>> brew reinstall gnuplot --with-aquaterm
要么
>> brew uninstall gnuplot
>> brew install gnuplot --with-aquaterm
在主目录中创建一个文件.octaverc
并将GNUTERM设置为X11
echo "setenv('GNUTERM','X11')" > ~/.octaverc
打开八度音阶终端并键入sombrero
以检查绘图是否有效
octave:1> sombrero
这对我有用:
安东是对的。您现在可以使用--with-aquaterm选项重新安装gnuplot。如果我有足够的声望点,我会回答他的回答。
$ brew uninstall gnuplot
$ brew install gnuplot --with-aquaterm
Mackuntu上面提到这个问题已在github上讨论过了。
https://github.com/mxcl/homebrew/issues/14647#issuecomment-21132477
但他建议使用选项--aquaterm。如果仔细查看github链接,您会看到选项是--with-aquaterm。今天使用此选项重新安装gnuplot允许我运行一些旧的八度代码,该代码使用gnuplot在OS X上绘制图形。