我已经通过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 绘制,但同样的问题..如何做这个"设置终端水"?
Gnuplot 开始消息说"Terminal type set to 'x11'
",但不知道如何更改它,以前的命令也不起作用。
由于 AquaTerm 不是从 Homebrew 安装的,也许八度/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-don-work.html
我在OS X 3.8.0版本10.9.1上遇到了类似的问题。观察Octave-gui如何仍然绘制图表,并使用octaverc阅读答案,我已经通过在/usr/local/octave/3.8.0/share/octave/site/m/startup/octaverc中添加一条带有setenv("GNUTERM","qt")
的线来绘制从Octave-cli工作
我不必重新安装 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 的自制配方以启用水产术语支持,通过键入以下内容打开 gnuplot 的酿造配方:
brew edit gnuplot
并添加这些行,如此 github 提交消息所示,这将使 gnuplot 的酿造选项包含水术语 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/符号链接后,重新安装 gnuplot,如下所示:
brew install gnuplot --with-aquaterm # (formerly --aquaterm in old versions)
使用以下步骤验证 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来绘图。而不是安装水术语并将其集成到 gnuplot 中,以八度键入:setenv GNUTERM x11
.有了这个,绘图是用 x11 生成的,它已经在 gnuplot (set terminal
的终端列表中。我知道这是一个补丁,但最后我不介意水族或x11,我只想生成情节
set terminal
或set term
是gnuplot命令。
您只需要从命令行运行gnuplot
即可访问 gnuplot shell。
但是,这对我不起作用,/usr/local/share/octave/site/m/startup/octaverc
或~/.octaverc
setenv("GNUTERM","x11")
也不起作用(两者都做同样的事情)。
所以我在 gnuplot shell 中运行了set term
,因为列表中没有看到x11
。 我使用自制软件来安装 gnuplot,所以我首先卸载了它brew uninstall gnuplot
,然后使用--with-x
标志安装了x11
:
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
这对我有用:
-
Unistall gnuplot
brew uninstall gnuplot
-
安装水术语。您可以从这里下载它: http://sourceforge.net/projects/aquaterm/
-
重新安装 gnuplot
酿造安装 gnuplot
Anton 是正确的。 您现在可以使用 --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 上绘制图形。
就我而言,在 Mas OS Mojave 上,适用于我的解决方案略有不同(可能只是语法问题)。 在此线程的讨论之后,我提出了对我有用的解决方案 - 可能需要注意的是,我可以直接从终端中的 Octave-cli 而不是从 Octave 命令行绘制。
所以我创建了一个˜/.octaverc
文件并向其添加了以下命令:
setenv GNUTERM qt
只是从八度退出命令行并再次进入并能够绘图。
以下事情对我有用:
setenv("GNUTERM","qt")
您可以在八度 cli 上运行它以进行本地运行,也可以在八度启动文件中设置为永久运行。
/usr/local/octave/3.8.0/share/octave/site/m/startup/octaverc
请记住,如果您更改octaverc文件,则必须对其具有写入权限。
我有一个答案可以解决您遇到的问题。 从本质上讲,对我来说,问题是 gnuplot 构建没有找到正确的 AquaTerm 库。 看看我发的帖子:
http://deveneezer.blogspot.com/2013/06/octave-gnuplot-and-aquaterm.html
对我有用的是安装 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
GNuploLot-NOX安装似乎已经将Aqua设置为GNuplot的默认终端。通过转到 gnuplot 外壳来验证这一点。要验证打印是否有效,请在外壳中键入 plot(1)。它应该在窗口中显示绘图。
希望这对你有用。
就像其他帖子中建议的那样,将 GNUTERM 设置为 X11 并没有为我解决这个问题。直接安装Mac OSX的AquaTerm也没有解决这个问题。
答案已经包含在上面,但我认为这更简单:
nano ~/.octaverc
添加这个:
setenv("GNUTERM", "X11")
这就是它重新启动八度,你完成了。
这是对我有用的解决方案(基于 mackuntu 评论的不同部分)
Gnuplot 可能已经通过 brew install octave 命令为您安装,因此我们需要先将其删除
brew uninstall gnuplot
然后必须安装水术语(http://sourceforge.net/projects/aquaterm/)
安装完成后,您需要再次安装 gnuplot。这是因为brew在安装过程中检测到水术语的存在,并且在安装后不会对其进行任何检查。
brew install gnuplot --with-aquaterm
如果您在安装后启动 gnuplot,它应该显示支持水术语。八度的所有图形都可以工作。