Erro Octave-Gnuplot-AquaTerm: defina o título aprimorado do terminal aqua “Figura 1”… tipo de terminal desconhecido "


136

Instalei o Octave e o gnuplot via Homebrew e baixei o AquaTerm.dmg. Quando tento traçar, recebo a seguinte mensagem:

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`

Em um terminal de festa set terminal, set Terminal, set term, (e o mesmo, seguido por "água" também) etc dá nada. Tentei traçar novamente a partir da oitava com o "AquaTerm" já aberto, mas nada. Eu tentei plotar diretamente do gnuplot, mas o mesmo problema .. Como posso fazer isso "set terminal aqua"?

A mensagem inicial do Gnuplot diz " Terminal type set to 'x11'" mas não faço ideia de como alterá-lo, os comandos anteriores também não funcionaram.

Como o AquaTerm não foi instalado no Homebrew, talvez a oitava / gnupot não consiga encontrá-lo ... mas não faço ideia. Algum palpite? Obrigado!


O que diabos isso tem a ver com bash? Você é solicitado a digitar set terminalgnuplot, não no bash.
n. 'pronomes' m.

1
@nm Eu tentei no bash porque digitar "set terminal" rigt após a mensagem (e, portanto, dentro da oitava) deu erro. Agora tentei abrir o gnuplot e digite "set terminal" e funcionou, ele mostra uma lista na qual o aqua não está lá. Obrigado pelo link! Desde que instalei o gnuplot brew, não o compilei diretamente. se eu faça o download e gnuplot compilação fora bebida não sei se vai haver qualquer conflito ou problema com oitava ...
PGreen

1
Para usuários do Linux: tente instalar gnuplot-x11e adicionar setenv("GNUTERM","X11")ao seu ~/.octaverc.
Martin Thoma

setenv("GNUTERM","qt")trabalhou para mim.
giapnh

Respostas:


110

Eu tive que adicionar setenv("GNUTERM","X11")a OCTAVE_HOME/share/octave/site/m/startup/octaverc(OCTAVE_HOME geralmente é / usr / local) para fazê-lo funcionar permanentemente.

Solução encontrada e mais detalhes em: http://www.mac-forums.com/forums/os-x-apps-games/242997-plots-octave-dont-work.html


Se você quiser revertê-lo, o valor original é aqua. octave:1> getenv GNUTERM ans = aqua
precisa saber é o seguinte

8
Se você não deseja atualizar o octaverc global, basta criar um arquivo ~ / .octaverc e digite o comando setenv lá.
Raj

83
Acabei de instalar o Octave 3.8.0 no OS X 10.9 (Mavericks) e o pacote Octave parece estar configurado para usar o Qt na janela (em vez de aqua ou x11) usando o gnuplot_qt. Criar um arquivo ~ / .octaverc contendo setenv("GNUTERM","qt")funcionou para mim (obrigado @Raj e @nightlyop).
tomelgin

se você usou o Homebrew para instalar o Octave, encontrará o arquivo octaverc no seguinte caminho:usr/local/Cellar/octave/4.0.0_5/share/octave/site/m/startup/octaverc
Kevin Zhao

3
setenv ("GNUTERM", "qt") funcionou para mim no Sierra 10.12.6. "x11" não.
Trevis Thomas

79

Corri para um problema semelhante com o Octave-cli, versão 3.8.0, no OS X 10.9.1. Observando como o Octave-gui ainda pode plotar gráficos e lendo a resposta com o octaverc, tenho que trabalhar com o Octave-cli adicionando uma linha com setenv("GNUTERM","qt")/usr/local/octave/3.8.0/share/octave/ site / m / startup / octaverc

Não precisei reinstalar o gnuplot ou outras dependências.


Isto é perfeito! Obrigado!
Thomas Ingalls

6
Definir o GNUTERM como qt funcionou para mim (não o X11), mas eu o coloquei no meu diretório pessoal (~ / .octaverc), não no diretório mencionado acima. Não sei qual é a diferença, mas o diretório inicial parece ser mais neutro na instalação.
Sepans 29/03

3
Também adicionei setenv ("GNUTERM", "qt") ao meu diretório pessoal ~ / .octaverc e plotar com oitava agora está funcionando como um encanto. Graças
chekkal

Obrigado. Trabalhos para El Capitan!
Rohan

70

Definir o tipo de terminal como x11 resolveria o problema, mas se você deseja que o AquaTerm funcione com o gnuplot, veja como:

Primeiro, precisamos desinstalar a instalação existente do gnuplot, abrir um terminal e executar este comando.

brew uninstall gnuplot

Faça o download do AquaTerm aqui: http://sourceforge.net/projects/aquaterm/ e instale-o como faria com qualquer aplicativo OSX.

A partir daqui, existem duas maneiras de deixar o gnuplot satisfeito com o aquaterm. O Método 1 é mais fácil, mas não funcionou para mim porque minha instalação do AquaTerm não criou os links simbólicos corretos em / usr / local / lib, o Método 2 é o um que funcionou para mim e estou compartilhando as etapas que tomei para fazê-lo funcionar.

Método 1: Simplesmente reinstale o gnuplot depois de instalar o AquaTerm parece corrigir esse problema para as pessoas.

brew install gnuplot

Vá para a etapa de verificação para ver se tudo funcionou, caso contrário, siga o método 2

Método 2: esse método é mais avançado, mas garantido que funcione se você for paciente.

Essencialmente, o gnuplot não pode localizar os arquivos da biblioteca AquaTerm, é por isso que o aqua não aparece como uma opção de tipo de terminal após a instalação do gnuplot. Precisamos modificar a receita caseira para o gnuplot para ativar o suporte ao aquaterm, abrir a receita de preparação para o gnuplot digitando:

brew edit gnuplot

E adicione essas linhas conforme mostrado nesta mensagem de confirmação do github, isso permitirá que a opção de distribuição do gnuplot inclua o aquaterm https://github.com/mxcl/homebrew/issues/14647#issuecomment-21132477

Verifique se os links simbólicos apropriados da biblioteca AquaTerm existem, executando estas verificações:

ls /usr/local/lib/libaquaterm*
ls /usr/local/include/aquaterm/*

A primeira linha acima deve retornar alguns arquivos * .dylib, a segunda linha acima deve retornar alguns arquivos * .h, se eles não existirem, execute estes comandos no terminal:

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/.

Às vezes, isso é necessário, pois o instalador do AquaTerm não pode criar os links simbólicos nos locais corretos devido a problemas de permissão. Depois que o / usr / local / symlinks for criado, reinstale o gnuplot assim:

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

Verifique se o gnuplot pode ver o aquaterm usando as etapas abaixo e plotagem feliz!


Verifique: se o gnuplot foi configurado corretamente com o AquaTerm iniciando o gnuplot no terminal

gnuplot

Digite isso no terminal gnuplot

gnuplot> set term

Procure a linha

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

Se você vir a linha acima, estará pronto, o gnuplot está configurado corretamente e todos estão felizes.


Método 2 todo o caminho!
Ben Ben

2
FYI: Eu não precisava atualizar a receita do gnuplot; basta adicionar os links simbólicos antes de instalar o gnuplot. Parece que todos os problemas do lado Homebrew foram corrigidos. Felicidades!
Aron1

3
brew reinstall gnuplot --aquatermfuncionou como um encanto ... aquaterm já deve ter sido instalado naquele momento.
Pykler

6
com minha configuração, eu precisava brew install gnuplot --with-aquaterm; aparentemente, a receita do brew gnuplot para 4.6.6 usa '--with-aquaterm' agora: não há necessidade de editar a receita ou criar esses links simbólicos, mas você precisa adicionar explicitamente o --with-aquaterm ao instalar o gnuplot.
Mike Sokolov

Obrigado pela grande ajuda ... Funcionou bem para mim usando o 2º método
minhas23 18/16/16

47

Eu encontrei uma maneira de gerar as parcelas com oitava, embora não esteja usando o AquaTerm, mas o x11. O problema era que o Oitava estava "forçando" o gnuplot a usar o aquaterm para traçar. Em vez de instalar e integrar Aquaterm em gnuplot, na oitava digitado: setenv GNUTERM x11. Com isso, gráficos são gerados com x11, que já está na lista de terminais do gnuplot ( set terminal). Sei que é um patch, mas, finalmente, não me importo com o aquaterm ou o x11, só quero que os gráficos sejam gerados


1
Obrigado, sua resposta me ajudou depois que eu tentei, pelo menos meia dúzia de soluções separadas
Kim Pilhas

2
Se você estiver executando o linux Mint 16, poderá ser necessário instalar o gnuplot-x11. sudo apt-get install gnuplot-x11 Então faça como PGreen disse, descobri que meu arquivo conf estava em /etc/octave.conf. Espero que ajude.
user1153623

24

set terminalou set termé o comando gnuplot.

Você só precisa executar a gnuplotpartir da linha de comando para obter acesso ao shell do gnuplot.

No entanto, isso não funcionou para mim, nem o setenv("GNUTERM","x11")in /usr/local/share/octave/site/m/startup/octavercou ~/.octaverc(ambos fazem a mesma coisa).

Então eu corri set termno shell gnuplot como não vi x11na lista. Eu usei o homebrew para instalar o gnuplot, então eu o desinstalei brew uninstall gnuplote instalei x11usando o --with-xflag para isso:

brew install gnuplot --with-x

Isso resolveu o problema para mim. Use brew info gnuplotpara ver a lista de sinalizadores para instalação do gnuplot.

PS E sim, eu baixei um X11 dmg e o instalei usando o instalador de pacotes, o gnuplot ainda não tinha x11 na lista de terminais suportados.


2
Muito útil. Observe que os gráficos me parecem mais limpos usando os terminais QT ou WxWindows, que podem ser instalados (lado a lado, se desejado) usando as opções de instalação --qte --wxdistribuição respectivamente.
Bryan P

1
Em vez de brew install gnuplot --with-x, uso brew reinstall gnuplot --with-x11(se gnuplot já está instalado; --with-x parece não mais suportada)
Tushar


8

Crie um arquivo .octavercno diretório inicial e defina GNUTERM como X11

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

Abra o terminal oitava e digite sombreropara verificar se a plotagem funciona

octave:1> sombrero

6

Isso funcionou para mim:

  1. Desinstalar gnuplot

    brew desinstalar gnuplot

  2. Instale o AquaTerm. Você pode baixá-lo aqui: http://sourceforge.net/projects/aquaterm/

  3. Reinstale o gnuplot

    brew install gnuplot


Se você ainda está recebendo "Falha na segmentação: 11" e "não é possível carregar a fonte apropriada", esses comandos funcionaram para mim: brew uninstall fontconfig && brew install fontconfig --universal
Julian

6

Anton está correto. Agora você pode apenas reinstalar o gnuplot com a opção --with-aquaterm. Eu recomendaria sua resposta se tivesse pontos de reputação suficientes para fazê-lo.

$ brew uninstall gnuplot
$ brew install gnuplot --with-aquaterm

O Mackuntu mencionou acima que esse problema foi discutido no github.

https://github.com/mxcl/homebrew/issues/14647#issuecomment-21132477

Mas ele aconselhou usar a opção --aquaterm. Se você olhar atentamente o link do github, verá que a opção é --with-aquaterm. Reinstalar o gnuplot com esta opção hoje me permitiu executar algum código de oitava antigo que usa o gnuplot para plotar gráficos no OS X.



4

No meu caso, no Mas OS Mojave, a solução que funcionou para o meu era um pouco diferente (poderia ser apenas uma questão de sintaxe). Após a discussão sobre este tópico eu vim com a solução que funcionou para mim - talvez seja importante observar que era possível traçar a partir da linha de comando Octave-cli, mas não da Octave, diretamente no terminal.

Então, criei um ˜/.octavercarquivo e adicionei o seguinte comando:

setenv GNUTERM qt

Apenas saia da linha de comando da oitava e entrou novamente e conseguiu plotar.


4

O seguinte funcionou para mim:

setenv("GNUTERM","qt")

Você pode executá-lo na oitava cli, para execução local, ou pode definir no arquivo de inicialização da oitava para permanente.

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

Lembre-se de que, caso você altere o arquivo octaverc, é necessário ter permissões de gravação.


2

O que funcionou para mim é instalar o gnuplot-nox. Consulte também https://bugs.mageia.org/show_bug.cgi?id=4866

Parece que a melhor maneira de instalar o gnuplot-nox é instalar o fink. http://sourceforge.net/projects/fink/?source=dlp

fink install gnuplot-nox

parece fazer um bom trabalho. No entanto, a instalação falhou em um ponto. Então eu instalei o gnuplot-minimal e executei o gnuplot-nox install novamente e tudo funcionou bem.

fink install gnuplot-minimal
fink install gnuplot-nox

A instalação do gnuplot-nox parecia ter definido o aqua como o terminal padrão para o gnuplot. Verifique isso acessando o gnuplot shell. Para verificar se a plotagem funciona, digite plot (1) no shell. Ele deve mostrar o gráfico em uma janela.

Espero que funcione para você.

Como sugerido em outros posts, configurar o GNUTERM como X11 não resolveu esse problema para mim. A instalação direta do AquaTerm para Mac OSX não resolveu esse problema.


2

A resposta já está contida no item acima, mas acho que é mais simples:

nano ~/.octaverc

Adicione isso:

setenv("GNUTERM", "X11")

É isso, reinicie a oitava.


0

Aqui está a solução que funcionou para mim (com base em diferentes partes do comentário do mackuntu)

Provavelmente o Gnuplot já está instalado para você pelo comando brew install octave, portanto, precisamos removê-lo primeiro

brew uninstall gnuplot

Em seguida, o aquaterm deve ser instalado ( http://sourceforge.net/projects/aquaterm/ )

Após a conclusão da instalação, você precisa instalar o gnuplot novamente. Isso ocorre porque o brew detecta a presença de aquaterm durante a instalação e não faz nenhuma verificação depois.

brew install gnuplot --with-aquaterm

Se você iniciar o gnuplot após a instalação, ele deverá mostrar que o aquaterm é suportado. E todos os gráficos na oitava funcionarão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.