139

我已经通过 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'”但不知道如何更改它,以前的命令也不起作用。

由于没有从 Homebrew 安装 AquaTerm,因此可能 octave/gnupot 找不到它……但不知道。有什么猜测吗?谢谢!

4

15 回答 15

110

我必须添加setenv("GNUTERM","X11")OCTAVE_HOME/share/octave/site/m/startup/octavercOCTAVE_HOME 通常是 /usr/local)才能使其永久工作。

找到的解决方案和更多详细信息:http: //www.mac-forums.com/forums/os-x-apps-games/242997-plots-octave-dont-work.html

于 2012-12-17T19:27:24.057 回答
81

我在 OS X 10.9.1 上遇到了 Octave-cli 版本 3.8.0 的类似问题。观察 Octave-gui 如何仍然可以绘制图表,并使用 octaverc 阅读答案,我已经通过添加一行setenv("GNUTERM","qt")到 /usr/local/octave/3.8.0/share/octave/来从 Octave-cli 工作站点/m/启动/octaverc

我不必重新安装 gnuplot 或其他依赖项。

于 2014-01-10T23:31:32.720 回答
69

将终端类型设置为 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/ 符号链接后,像这样重新安装 gnuplot:

brew install gnuplot --with-aquaterm # (formerly --aquaterm in old versions)

使用以下步骤验证 gnuplot 是否可以看到 aquaterm 并进行愉快的绘图!


验证:通过在终端中启动 gnuplot 是否正确配置了 AquaTerm

gnuplot

在 gnuplot 终端中输入

gnuplot> set term

寻找线

Available terminal types:
         aqua  Interface to graphics terminal server for Mac OS X
         ...

如果您看到上面的那一行,那么您就完成了,gnuplot 配置正确并且每个人都很高兴。

于 2013-09-03T23:42:10.047 回答
47

我找到了一种用八度音阶生成图的方法,虽然不是使用 AquaTerm 而是 x11。问题是 Octave “强迫” gnuplot 使用 aquaterm 进行绘图。不是安装 aquaterm 并将其集成到 gnuplot 中,而是在 octave 中键入:setenv GNUTERM x11. 有了这个,用 x11 生成图,它已经在 gnuplot ( set terminal) 的终端列表中。我知道这是一个补丁,但最后我不介意 aquaterm 或 x11,我只想生成绘图

于 2012-12-10T12:13:31.033 回答
24

set terminal或者set term是 gnuplot 命令。

您只需要从命令行运行gnuplot即可访问 gnuplot shell。

但是,这对我不起作用,setenv("GNUTERM","x11")in/usr/local/share/octave/site/m/startup/octaverc~/.octaverc(两者都做同样的事情)也没有。

所以我set term在 gnuplot shell 中运行,因为x11在列表中没有看到。我使用 homebrew 来安装 gnuplot,所以我首先将其卸载brew uninstall gnuplot,然后x11使用--with-xflag 进行安装:

brew install gnuplot --with-x

这为我解决了这个问题。用于brew info gnuplot查看 gnuplot 安装的标志列表。

PS 是的,我确实下载了 X11 dmg 并使用包安装程序安装了它,但 gnuplot 在支持的终端列表中仍然没有 x11。

于 2013-05-16T01:26:07.923 回答
10

你可以试试这个:

>> brew reinstall gnuplot --with-aquaterm

或者

>> brew uninstall gnuplot
>> brew install gnuplot --with-aquaterm
于 2014-07-29T21:44:56.553 回答
8

在你的主目录中创建一个文件.octaverc并将 GNUTERM 设置为 X11

echo "setenv('GNUTERM','X11')" > ~/.octaverc

打开 octave 终端并键入sombrero以检查绘图是否有效

octave:1> sombrero
于 2014-03-12T12:49:15.327 回答
6

这对我有用:

  1. 卸载 gnuplot

    冲泡卸载 gnuplot

  2. 安装 AquaTerm。你可以从这里下载它:http: //sourceforge.net/projects/aquaterm/

  3. 重新安装 gnuplot

    酿造安装 gnuplot

于 2014-03-29T17:30:06.183 回答
6

安东是正确的。您现在可以使用 --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 让我可以运行一些旧的 octave 代码,这些代码使用 gnuplot 在 OS X 上绘制图形。

于 2014-09-18T22:03:41.987 回答
6

就我而言,在 Mas OS Mojave 上,适用于我的解决方案略有不同(可能只是语法问题)。在关于这个线程的讨论之后,我提出了对我有用的解决方案——重要的是要注意,我可以从 Octave-cli 进行绘图,但不能直接在终端中从 Octave 命令行进行绘图。

所以我创建了一个˜/.octaverc文件并向其中添加了以下命令:

setenv GNUTERM qt

只需从 octave 退出命令行并再次输入并能够绘图。

于 2019-02-17T16:11:12.310 回答
6

以下事情对我有用:

setenv("GNUTERM","qt")

您可以在 octave cli 上运行它,用于本地运行,也可以在 octave 启动文件中设置为永久。

/usr/local/octave/3.8.0/share/octave/site/m/startup/octaverc

请记住,如果您更改 octaverc 文件,您必须对其具有写入权限。

于 2019-05-25T17:20:01.273 回答
5

我有一个答案应该可以解决您遇到的问题。本质上,对我来说,问题在于 gnuplot 构建没有找到正确的 AquaTerm 库。看看我发的帖子:

http://devenezer.blogspot.com/2013/06/octave-gnuplot-and-aquaterm.html

于 2013-06-19T03:56:56.410 回答
2

对我有用的是安装 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 install ,一切正常。

fink install gnuplot-minimal
fink install gnuplot-nox

gnuplot-nox install 似乎已将 aqua 设置为 gnuplot 的默认终端。通过转到 gnuplot shell 来验证这一点。要验证绘图是否有效,请在 shell 中键入 plot(1)。它应该在窗口中显示绘图。

希望这对你有用。

就像其他帖子中建议的那样,将 GNUTERM 设置为 X11 并没有为我解决这个问题。同样直接安装 Mac OSX 的 AquaTerm 也没有解决这个问题。

于 2013-12-25T10:05:25.200 回答
2

答案已经包含在上面,但我认为这更简单:

nano ~/.octaverc

添加这个:

setenv("GNUTERM", "X11")

那就是它重新启动八度音程,您就完成了。

于 2014-03-23T20:17:03.780 回答
0

这是对我有用的解决方案(基于mackuntu评论的不同部分)

brew install octave 命令可能已经为您安装了 Gnuplot,因此我们需要先将其删除

brew uninstall gnuplot

然后必须安装 aquaterm ( http://sourceforge.net/projects/aquaterm/ )

安装完成后,您需要再次安装 gnuplot。这是因为 brew 在安装过程中检测到 aquaterm 的存在,之后不会对其进行任何检查。

brew install gnuplot --with-aquaterm

如果您在安装后启动 gnuplot,它应该显示支持 aquaterm。并且所有八度的图形都可以工作。

于 2015-01-25T11:22:58.607 回答