Błąd Octave-Gnuplot-AquaTerm: ustaw rozszerzony tytuł terminala aqua „Rysunek 1”… nieznany typ terminala ”

136

Zainstalowałem Octave i gnuplot przez Homebrew i pobrałem AquaTerm.dmg. Kiedy próbuję kreślić, otrzymuję następujący komunikat:

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`

W terminalu bash set terminal, set Terminal, set term, (i to samo, a następnie „AQUA” też) itp nic nie daje. Próbowałem wykreślić ponownie z oktawy mając już otwarty „AquaTerm”, ale nic. Próbowałem kreślić bezpośrednio z gnuplot, ale ten sam problem. Jak mogę to zrobić "ustaw terminal aqua"?

Komunikat początkowy Gnuplot mówi " Terminal type set to 'x11'", ale nie mam pojęcia, jak to zmienić, poprzednie polecenia też nie działały.

Ponieważ AquaTerm nie został zainstalowany z Homebrew, być może octave / gnupot nie może go znaleźć ... ale nie mam pojęcia. Jakieś pomysły? Dzięki!

PGreen
źródło
Co to ma wspólnego z bashem? Jesteś proszony o wpisanie set terminalgnuplot, a nie bash.
n. zaimki m.
1
@nm Próbowałem w bash, ponieważ wpisanie „set terminal” w prawo po komunikacie (a zatem wewnątrz oktawy) dało błąd. Teraz próbowałem otworzyć gnuplot i wpisać „ustaw terminal” i zadziałało, pokazuje listę, na której nie ma aqua. Dzięki za link! Ponieważ zainstalowałem gnuplot z brew, nie skompilowałem go bezpośrednio. jeśli
pobiorę
1
Użytkownicy systemu Linux: spróbuj zainstalować gnuplot-x11i dodać setenv("GNUTERM","X11")do ~/.octaverc.
Martin Thoma
setenv("GNUTERM","qt")pracował dla mnie.
giapnh

Odpowiedzi:

110

Musiałem dodać setenv("GNUTERM","X11")do OCTAVE_HOME/share/octave/site/m/startup/octaverc(OCTAVE_HOME zwykle to / usr / local), aby działał na stałe.

Znalezione rozwiązanie i więcej szczegółów na: http://www.mac-forums.com/forums/os-x-apps-games/242997-plots-octave-dont-work.html

nightlyop
źródło
Jeśli kiedykolwiek zechcesz to przywrócić, oryginalna wartość to aqua. octave:1> getenv GNUTERM ans = aqua
DeepSpace101
8
Jeśli nie chcesz aktualizować globalnego octaverc, po prostu utwórz plik ~ / .octaverc i wprowadź tam polecenie setenv.
Raj
83
Właśnie zainstalowałem Octave 3.8.0 na OS X 10.9 (Mavericks), a pakiet Octave wydaje się być skonfigurowany do używania Qt do okienkowania (zamiast aqua lub x11) przy użyciu gnuplot_qt. Utworzenie pliku ~ / .octaverc zawierającego setenv("GNUTERM","qt")zadziałało dla mnie (dzięki @Raj i @nightlyop).
tomelgin
jeśli użyto Homebrew zainstalować Octave, znajdziesz plik octaverc w następującej ścieżce:usr/local/Cellar/octave/4.0.0_5/share/octave/site/m/startup/octaverc
Kevin Zhao
3
setenv ("GNUTERM", "qt") działało dla mnie na Sierra 10.12.6. „x11” nie.
Trevis Thomas
79

Podobny problem napotkałem w przypadku Octave-cli w wersji 3.8.0 w systemie OS X 10.9.1. Obserwując, jak Octave-gui może nadal tworzyć wykresy i czytając odpowiedź za pomocą octaverc, wykreowałem do pracy z Octave-cli, dodając linię z setenv("GNUTERM","qt")/usr/local/octave/3.8.0/share/octave/ site / m / startup / octaverc

Nie musiałem ponownie instalować gnuplota ani innych zależności.

rehumbus
źródło
To jest doskonałe! Dzięki!
Thomas Ingalls,
6
Ustawienie GNUTERM na qt działało dla mnie (nie X11), ale umieściłem go w moim katalogu domowym (~ / .octaverc), a nie w katalogu wymienionym powyżej. Nie wiem, jaka jest różnica, ale katalog domowy wydaje się być bardziej neutralny pod względem instalacji.
sepans
3
Dodałem także setenv ("GNUTERM", "qt") do mojego katalogu domowego ~ / .octaverc i kreślenie z oktawą działa teraz jak marzenie. Dzięki
chekkal
Dzięki. Działa dla El Capitan!
Rohan
70

Ustawienie typu terminala na x11 rozwiązałoby problem, ale jeśli chcesz, aby AquaTerm działał z gnuplot, oto jak:

Najpierw musimy odinstalować istniejącą instalację gnuplot, otworzyć terminal i uruchomić to polecenie.

brew uninstall gnuplot

Pobierz AquaTerm stąd: http://sourceforge.net/projects/aquaterm/ i zainstaluj tak, jak każdą aplikację OSX.

Odtąd są dwa sposoby, aby zadowolić gnuplot z aquaterm, metoda 1 jest łatwiejsza, ale nie zadziałała, ponieważ moja instalacja AquaTerm nie utworzyła poprawnych dowiązań symbolicznych w / usr / local / lib, metoda 2 to metoda taki, który zadziałał dla mnie i dzielę się krokami, które podjąłem, aby to zadziałało.

Metoda 1: Po zainstalowaniu AquaTerm po prostu zainstaluj ponownie gnuplot, aby rozwiązać ten problem.

brew install gnuplot

Przejdź do kroku weryfikacji, aby sprawdzić, czy wszystko działa, jeśli nie, postępuj zgodnie z metodą 2

Metoda 2: Ta metoda jest bardziej zaawansowana, ale na pewno zadziała, jeśli będziesz cierpliwy.

Zasadniczo gnuplot nie może zlokalizować plików biblioteki AquaTerm, dlatego aqua nie pojawia się jako opcja typu terminala po zainstalowaniu gnuplota. Musimy zmodyfikować przepis homebrew dla gnuplot, aby włączyć obsługę aquaterm, otworzyć przepis na napar dla gnuplot, wpisując:

brew edit gnuplot

I dodaj te linie, jak pokazano w tym komunikacie zatwierdzającym github, umożliwi to opcji parzenia dla gnuplot, aby uwzględnić aquaterm https://github.com/mxcl/homebrew/issues/14647#issuecomment-21132477

Sprawdź, czy istnieją odpowiednie linki symboliczne biblioteki AquaTerm, wykonując następujące sprawdzenia:

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

Pierwsza linia powyżej powinna zwrócić niektóre pliki * .dylib, druga linia powyżej powinna zwrócić niektóre pliki * .h, jeśli nie istnieją, uruchom następujące polecenia z terminala:

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

Jest to czasami konieczne, ponieważ instalator AquaTerm nie może utworzyć linków symbolicznych we właściwych miejscach z powodu problemów z uprawnieniami. Po utworzeniu dowiązań symbolicznych / usr / local / zainstaluj ponownie gnuplot w następujący sposób:

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

Sprawdź, czy gnuplot widzi akwen wodny, wykonując poniższe czynności i miłego kreślenia!


Sprawdź: czy gnuplot został poprawnie skonfigurowany z AquaTermem, uruchamiając gnuplot w terminalu

gnuplot

Wpisz to w terminalu gnuplot

gnuplot> set term

Poszukaj linii

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

Jeśli widzisz powyższą linię, to wszystko gotowe, gnuplot jest poprawnie skonfigurowany i wszyscy są zadowoleni.

mackuntu
źródło
Metoda 2 do końca!
Ben Miller
2
FYI: Nie musiałem aktualizować przepisu na gnuplot; po prostu dodanie dowiązań symbolicznych przed zainstalowaniem gnuplot załatwiło sprawę. Wygląda na to, że wszelkie problemy po stronie Homebrew zostały naprawione. Twoje zdrowie!
Aron,
3
brew reinstall gnuplot --aquatermdziałał jak urok ... aquaterm musiał być już zainstalowany w tym momencie.
Pykler
6
z moją konfiguracją musiałem brew install gnuplot --with-aquaterm; najwyraźniej przepis na brew gnuplot w wersji 4.6.6 używa teraz „--with-aquaterm”: nie ma potrzeby edytowania przepisu ani tworzenia tych dowiązań symbolicznych, ale podczas instalowania gnuplot trzeba wyraźnie dodać --with-aquaterm.
Mike Sokolov
Dzięki za wielką pomoc ... U mnie zadziałało, używając drugiej metody
minhas23
47

Znalazłem sposób na generowanie wykresów za pomocą oktawy, chociaż nie używam AquaTerm, ale x11. Problem polegał na tym, że Octave „zmuszał” gnuplota do używania aquatermu do tworzenia wykresów. Zamiast instalować i integracji AQUATERM do gnuplot, w oktawie wpisane: setenv GNUTERM x11. Dzięki temu wykresy są generowane za pomocą x11, który jest już na liście terminali gnuplot ( set terminal). Wiem, że to łatka, ale w końcu nie mam nic przeciwko aquaterm lub x11, po prostu chcę, aby wykresy były generowane

PGreen
źródło
1
Dziękuję, twoja odpowiedź pomogła mi po tym, jak wypróbowałem co najmniej pół tuzina oddzielnych rozwiązań
Kim Stacks
2
Jeśli używasz Linuksa Mint 16, może być konieczne zainstalowanie gnuplot-x11. sudo apt-get install gnuplot-x11 Następnie wykonaj polecenie PGreen, stwierdziłem, że mój plik conf znajduje się w /etc/octave.conf. Mam nadzieję, że to pomoże.
user1153623
24

set terminallub set termjest komendą gnuplot.

Wystarczy uruchomić gnuplotz wiersza poleceń, aby uzyskać dostęp do powłoki gnuplot.

Jednak to nie zadziałało dla mnie, podobnie jak setenv("GNUTERM","x11")in /usr/local/share/octave/site/m/startup/octaverclub ~/.octaverc(oba robią to samo).

Więc uruchomiłem set termw powłoce gnuplot, jak nie widziałem x11na liście. Użyłem homebrew do zainstalowania gnuplota, więc najpierw go odinstalowałem brew uninstall gnuplot, a następnie zainstalowałem z x11użyciem --with-xflagi:

brew install gnuplot --with-x

To rozwiązało problem. Użyj, brew info gnuplotaby zobaczyć listę flag dla instalacji gnuplot.

PS I tak, pobrałem dmg X11 i zainstalowałem za pomocą instalatora pakietów, nadal gnuplot nie miał x11 na liście obsługiwanych terminali.

i4niac
źródło
2
Bardzo pomocne. Zauważ, że grafika wydaje mi się czystsza przy użyciu terminali QT lub WxWindows, które można zainstalować (w razie potrzeby z boku), używając odpowiednio opcji --qti --wxbrew install.
Bryan P,
1
Zamiast brew install gnuplot --with-x, użyj brew reinstall gnuplot --with-x11(jeśli gnuplot jest już zainstalowany; --with-x wydaje się nie być już obsługiwany)
Tushar
10

Możesz spróbować tego:

>> brew reinstall gnuplot --with-aquaterm

lub

>> brew uninstall gnuplot
>> brew install gnuplot --with-aquaterm
antonpp
źródło
Przydałoby się więcej wyjaśnień.
Jens
3
Pamiętaj, że faktycznie musisz zainstalować aquaterm przed ponowną instalacją gnuplot. aquaterm.github.io
Lee Avital
with-aquatermnie jest poprawnym rozwiązaniem dla gnuplot: github.com/Homebrew/homebrew-core/issues/46923
Ty Hitzeman
8

Utwórz plik .octavercw swoim katalogu domowym i ustaw GNUTERM na X11

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

Otwórz terminal oktawowy i wpisz, sombreroaby sprawdzić, czy działa kreślenie

octave:1> sombrero
zachowuje się
źródło
6

To zadziałało dla mnie:

  1. Unistall gnuplot

    napisz odinstaluj gnuplot

  2. Zainstaluj AquaTerm. Możesz go pobrać stąd: http://sourceforge.net/projects/aquaterm/

  3. Zainstaluj ponownie gnuplot

    napar zainstaluj gnuplot

avgn
źródło
Jeśli nadal otrzymujesz komunikat „Błąd segmentacji: 11” i „nie można załadować odpowiedniej czcionki”, te polecenia zadziałały: brew uninstall fontconfig && brew install fontconfig --universal
Julian
6

Anton ma rację. Możesz teraz po prostu ponownie zainstalować gnuplot z opcją --with-aquaterm. Głosowałbym za jego odpowiedzią, gdybym miał wystarczająco dużo punktów reputacji, aby to zrobić.

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

Mackuntu wspomniał powyżej, że ten problem był omawiany na githubie.

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

Ale radził skorzystać z opcji - aquaterm. Jeśli przyjrzysz się uważnie linkowi do github, zobaczysz, że opcja to --with-aquaterm. Ponowna instalacja gnuplot z tą opcją pozwoliła mi dzisiaj uruchomić stary kod oktawowy, który używa gnuplot do kreślenia wykresów w systemie OS X.

James Bridgewater
źródło
4

W moim przypadku na Mas OS Mojave rozwiązanie, które działało na moim, było nieco inne (może to być tylko kwestia składni). Po dyskusji w tym wątku przyszedłem z rozwiązaniem, które działało dla mnie - warto zauważyć, że mogłem drukować z Octave-cli, ale nie z wiersza poleceń Octave bezpośrednio w terminalu.

Utworzyłem więc ˜/.octavercplik i dodałem do niego następujące polecenie:

setenv GNUTERM qt

Po prostu wyjdź z wiersza poleceń z oktawy i wejdź ponownie i był w stanie kreślić.

Daniel Ambrósio
źródło
4

Następująca rzecz zadziałała dla mnie:

setenv("GNUTERM","qt")

Możesz uruchomić go w oktawowym CLI, dla uruchomienia lokalnego lub ustawić w pliku startowym oktawy na stałe.

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

Pamiętaj tylko, że w przypadku zmiany pliku octaverc musisz mieć uprawnienia do zapisu do niego.

Arjit Sharma
źródło
2

To, co mi się sprawdziło, to instalacja gnuplot-nox. Zobacz także https://bugs.mageia.org/show_bug.cgi?id=4866

Wydaje się, że najlepszym sposobem na zainstalowanie gnuplot-nox jest zainstalowanie fink. http://sourceforge.net/projects/fink/?source=dlp

fink install gnuplot-nox

wydaje się, że wykonuje dobrą robotę. Jednak w pewnym momencie instalacja nie powiodła się. Więc zainstalowałem gnuplot-minimal, a następnie ponownie uruchomiłem instalację gnuplot-nox i wszystko działało dobrze.

fink install gnuplot-minimal
fink install gnuplot-nox

Wydawało się, że instalacja gnuplot-nox ustawiła aqua jako domyślny terminal gnuplot. Sprawdź to, przechodząc do powłoki gnuplot. Aby sprawdzić, czy kreślenie działa, wpisz plot (1) w powłoce. Powinien pokazać działkę w oknie.

Mam nadzieję, że to działa dla Ciebie.

Jak sugerowano w innych postach, ustawienie GNUTERM na X11 nie rozwiązało tego problemu. Również samo zainstalowanie AquaTerm dla Mac OSX nie rozwiązało tego problemu.

user3134249
źródło
2

Odpowiedź jest już zawarta w powyższym, ale myślę, że jest to prostsze:

nano ~/.octaverc

Dodaj:

setenv("GNUTERM", "X11")

To jest ponowne uruchomienie oktawy, gotowe.

boulder_ruby
źródło
0

Oto rozwiązanie, które zadziałało dla mnie (na podstawie różnych części komentarza mackuntu)

Prawdopodobnie Gnuplot jest już zainstalowany przez polecenie brew install octave, więc musimy go najpierw usunąć

brew uninstall gnuplot

Następnie należy zainstalować aquaterm ( http://sourceforge.net/projects/aquaterm/ )

Po zakończeniu instalacji musisz ponownie zainstalować gnuplot. Dzieje się tak, ponieważ napar wykrywa obecność wody podczas instalacji i nie sprawdza jej później.

brew install gnuplot --with-aquaterm

Jeśli uruchomisz gnuplot po instalacji, powinno pokazać, że działa aquaterm. I cała grafika w oktawie będzie działać.

can3p
źródło