ข้อผิดพลาด Octave-Gnuplot-AquaTerm: ตั้งชื่อเทอร์มินัล aqua ที่ปรับปรุงแล้ว“ รูปที่ 1” …ไม่ทราบประเภทเทอร์มินัล "


137

ฉันได้ติดตั้ง Octave และ gnuplot ผ่าน Homebrew และดาวน์โหลด 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`

ในสถานีทุบตีset terminal, set Terminal, set term, (และเดียวกันตามด้วย "น้ำ" มากเกินไป) ฯลฯ จะช่วยให้อะไร ฉันได้ลองพล็อตอีกครั้งตั้งแต่คู่แปดโดยเปิด "AquaTerm" แล้ว แต่ไม่มีอะไรเลย ฉันได้ลองวางแผนโดยตรงจาก gnuplot แต่ปัญหาเดียวกัน .. ฉันจะทำ "set terminal aqua" ได้อย่างไร?

ข้อความเริ่มต้น Gnuplot ระบุว่า " Terminal type set to 'x11'" แต่ไม่รู้ว่าจะเปลี่ยนอย่างไรคำสั่งก่อนหน้านี้ก็ใช้ไม่ได้เช่นกัน

เนื่องจากไม่ได้ติดตั้ง AquaTerm จาก Homebrew อาจจะหา octave / gnupot ไม่พบ ... แต่ก็ไม่รู้ เดา ๆ ? ขอบคุณ!


บนโลกนี้เกี่ยวข้องอะไรกับการทุบตี? คุณถูกขอให้พิมพ์set terminalใน gnuplot ไม่ใช่ใน bash
. 'สรรพนาม' ม.

1
@nm ฉันลองใช้ bash เพราะพิมพ์ "set terminal" rigt หลังข้อความ (ดังนั้นภายในอ็อกเทฟ) ทำให้เกิดข้อผิดพลาด ตอนนี้ฉันลองเปิด gnuplot แล้วพิมพ์ "set terminal" แล้วมันใช้งานได้มันแสดงรายการที่ไม่มี aqua ขอบคุณสำหรับลิงค์! เนื่องจากฉันได้ติดตั้ง gnuplot จากbrewฉันไม่ได้รวบรวมโดยตรง ถ้าฉันดาวน์โหลดและรวบรวม gnuplot outside brew ไม่รู้ว่าจะมีความขัดแย้งหรือมีปัญหากับ octave หรือไม่ ...
PGreen

1
สำหรับผู้ใช้ Linux: ลองติดตั้งgnuplot-x11และเพิ่มลงsetenv("GNUTERM","X11")ใน~/.octavercไฟล์.
Martin Thoma

setenv("GNUTERM","qt")ทำงานให้ฉัน
giapnh

คำตอบ:


110

ฉันต้องเพิ่ม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


aquaหากคุณเคยต้องการที่จะเปลี่ยนมันเป็นค่าเดิม octave:1> getenv GNUTERM ans = aqua
DeepSpace101

8
หากคุณไม่ต้องการอัปเดต octaverc ส่วนกลางเพียงแค่สร้างไฟล์ ~ / .octaverc แล้วป้อนคำสั่ง setenv ในนั้น
ราช

83
ฉันเพิ่งติดตั้ง Octave 3.8.0 บน OS X 10.9 (Mavericks) และดูเหมือนว่าชุด Octave จะถูกตั้งค่าให้ใช้ Qt สำหรับการสร้างหน้าต่าง (แทนที่จะเป็น aqua หรือ x11) โดยใช้ gnuplot_qt การสร้างไฟล์ ~ / .octaverc ที่ใช้setenv("GNUTERM","qt")งานได้สำหรับฉัน (ขอบคุณ @Raj และ @nightlyop)
tomelgin

หากคุณใช้ Homebrew เพื่อติดตั้ง Octave คุณจะพบไฟล์ octaverc ในเส้นทางต่อไปนี้:usr/local/Cellar/octave/4.0.0_5/share/octave/site/m/startup/octaverc
Kevin Zhao

3
setenv ("GNUTERM", "qt") ทำงานให้ฉันใน Sierra 10.12.6 "x11" ไม่ได้
Trevis Thomas

79

ฉันพบปัญหาที่คล้ายกันกับ Octave-cli เวอร์ชัน 3.8.0 บน OS X 10.9.1 จากการสังเกตว่า Octave-gui ยังคงพล็อตแผนภูมิได้อย่างไรและอ่านคำตอบด้วย octaverc ฉันได้วางแผนที่จะทำงานจาก Octave-cli โดยการเพิ่มบรรทัดด้วยsetenv("GNUTERM","qt")ไปที่ /usr/local/octave/3.8.0/share/octave/ ไซต์ / m / start / octaverc

ฉันไม่ต้องติดตั้ง gnuplot หรือการอ้างอิงอื่น ๆ อีกครั้ง


ลงตัวนี้! ขอบคุณ!
Thomas Ingalls

6
การตั้งค่า GNUTERM เป็น qt ใช้งานได้สำหรับฉัน (ไม่ใช่ X11) แต่ฉันใส่ไว้ในโฮมไดเร็กทอรี (~ / .octaverc) ไม่ใช่ไดเร็กทอรีที่กล่าวถึงข้างต้น ฉันไม่รู้ว่าความแตกต่างคืออะไร แต่โฮมไดเร็กทอรีดูเหมือนจะเป็นกลางในการติดตั้งมากกว่า
ก.ย.

3
ฉันยังได้เพิ่ม setenv ("GNUTERM", "qt") ลงในโฮมไดเร็กทอรีของฉัน ~ / .octaverc และการพล็อตด้วยอ็อกเทฟก็ทำงานได้อย่างมีเสน่ห์ ขอบคุณ
chekkal

ขอบคุณ. ใช้ได้กับ El Capitan!
Rohan

70

การตั้งค่าประเภทเทอร์มินัลเป็น x11 จะช่วยแก้ปัญหาได้ แต่ถ้าคุณต้องการให้ AquaTerm ทำงานกับ gnuplot นี่คือวิธี:

ก่อนอื่นเราต้องถอนการติดตั้งการติดตั้ง gnuplot ที่มีอยู่เปิดเทอร์มินัลแล้วรันคำสั่งนี้

brew uninstall gnuplot

ดาวน์โหลด AquaTerm จากที่นี่: http://sourceforge.net/projects/aquaterm/และติดตั้งตามที่คุณทำกับแอปพลิเคชัน OSX

จากนี้ไปมีสองวิธีในการทำให้ gnuplot พอใจกับ aquaterm วิธีที่ 1นั้นง่ายกว่า แต่ไม่ได้ผลสำหรับฉันเพราะการติดตั้ง AquaTerm ของฉันไม่ได้สร้าง symlink ที่ถูกต้องใน / usr / local / lib วิธีที่ 2คือ สิ่งที่ได้ผลสำหรับฉันและฉันกำลังแบ่งปันขั้นตอนที่ฉันทำเพื่อให้มันใช้งานได้

วิธีที่ 1:เพียงติดตั้ง gnuplot ใหม่หลังจากติดตั้ง AquaTerm ดูเหมือนจะแก้ไขปัญหานี้ให้กับผู้คน

brew install gnuplot

ไปที่ขั้นตอนการตรวจสอบเพื่อดูว่าทุกอย่างได้ผลหรือไม่ให้ทำตามวิธีที่ 2

วิธีที่ 2:วิธีนี้เป็นขั้นสูงกว่า แต่รับประกันว่าจะได้ผลหากคุณอดทน

โดยพื้นฐานแล้ว gnuplot ไม่สามารถค้นหาไฟล์ไลบรารี AquaTerm ได้นั่นคือสาเหตุที่ aqua ไม่แสดงเป็นตัวเลือกประเภทเทอร์มินัลหลังจากที่เราติดตั้ง gnuplot เราจำเป็นต้องแก้ไขสูตร homebrew สำหรับ gnuplot เพื่อเปิดใช้งาน aquaterm support เปิดสูตรการชงสำหรับ gnuplot โดยพิมพ์:

brew edit gnuplot

และเพิ่มบรรทัดเหล่านี้ตามที่แสดงในข้อความคอมมิต github นี้จะเปิดใช้งานตัวเลือกการชงสำหรับ gnuplot เพื่อรวม 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 ไม่สามารถสร้าง symlink ในตำแหน่งที่ถูกต้องได้เนื่องจากปัญหาการอนุญาต เมื่อสร้างลิงก์ / usr / local / symlink แล้วให้ติดตั้ง gnuplot ใหม่ดังนี้:

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

ตรวจสอบว่า gnuplot สามารถเห็น aquaterm โดยใช้ขั้นตอนด้านล่างและวางแผนอย่างมีความสุข!


ตรวจสอบ: gnuplot นั้นได้รับการกำหนดค่าด้วย AquaTerm อย่างถูกต้องโดยเรียกใช้ gnuplot ในเทอร์มินัล

gnuplot

พิมพ์สิ่งนี้ในเทอร์มินัล gnuplot

gnuplot> set term

มองหาบรรทัด

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

หากคุณเห็นบรรทัดด้านบนแสดงว่าเสร็จสิ้น gnuplot ได้รับการกำหนดค่าอย่างถูกต้องและทุกคนมีความสุข


วิธีที่ 2 ตลอดทาง!
Ben Miller

2
FYI: ฉันไม่จำเป็นต้องอัปเดตสูตรสำหรับ gnuplot; เพียงแค่เพิ่ม symlinks ก่อนที่จะติดตั้ง gnuplot ก็สามารถทำได้ ดูเหมือนว่าปัญหาใด ๆ ในฝั่ง Homebrew ได้รับการแก้ไขแล้ว ไชโย!
Aron

3
brew reinstall gnuplot --aquatermทำงานได้อย่างมีเสน่ห์ ... aquaterm ต้องได้รับการติดตั้งไว้แล้ว ณ จุดนั้น
Pykler

6
ด้วยการตั้งค่าของฉันฉันต้องbrew install gnuplot --with-aquaterm; เห็นได้ชัดว่าสูตรชง gnuplot สำหรับ 4.6.6 ใช้ '- with-aquaterm' ในขณะนี้: ไม่จำเป็นต้องแก้ไขสูตรหรือสร้างลิงก์เหล่านั้น แต่คุณจำเป็นต้องเพิ่ม - ด้วยน้ำอย่างชัดเจนเมื่อติดตั้ง gnuplot
Mike Sokolov

ขอบคุณสำหรับความช่วยเหลือที่ดี ... มันทำงานได้ดีสำหรับฉันโดยใช้วิธีที่ 2
minhas23

47

ฉันพบวิธีสร้างพล็อตด้วยอ็อกเทฟแม้ว่าจะไม่ได้ใช้ AquaTerm แต่เป็น x11 ปัญหาคือออคเทฟกำลัง "บังคับ" ให้ gnuplot ใช้ aquaterm เพื่อวางแผน แทนการติดตั้งและการบูรณาการเข้า Aquaterm gnuplot setenv GNUTERM x11ในคู่ที่พิมพ์: ด้วยสิ่งนี้พล็อตจะถูกสร้างขึ้นด้วย x11 ซึ่งอยู่ในรายการเทอร์มินัลของ gnuplot ( set terminal) แล้ว ฉันรู้ว่ามันเป็นแพทช์ แต่ในที่สุดฉันก็ไม่สนใจ aquaterm หรือ x11 ฉันแค่ต้องการสร้างพล็อต


1
ขอบคุณคำตอบของคุณช่วยฉันหลังจากที่ฉันลองวิธีแก้ปัญหาอย่างน้อยครึ่งโหล
Kim Stacks

2
หากใช้ linux Mint 16 คุณอาจต้องติดตั้ง gnuplot-x11 sudo apt-get install gnuplot-x11 จากนั้นทำตามที่ PGreen บอกฉันพบว่าไฟล์ conf ของฉันอยู่ที่ /etc/octave.conf หวังว่าจะช่วยได้
user1153623

24

set terminalหรือset termเป็นคำสั่ง gnuplot

คุณต้องเรียกใช้gnuplotจาก command line เพื่อเข้าถึง gnuplot shell

อย่างไรก็ตามสิ่งนี้ไม่ได้ผลสำหรับฉันทั้งsetenv("GNUTERM","x11")ใน/usr/local/share/octave/site/m/startup/octavercหรือ~/.octaverc(ทั้งคู่ทำสิ่งเดียวกัน)

ดังนั้นฉันจึงวิ่งset termใน gnuplot shell ตามที่เห็นx11ในรายการ ฉันใช้ homebrew เพื่อติดตั้ง gnuplot ดังนั้นฉันจึงถอนการติดตั้งก่อนbrew uninstall gnuplotจากนั้นติดตั้งx11โดยใช้--with-xแฟล็กสำหรับสิ่งนั้น:

brew install gnuplot --with-x

สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้ ใช้brew info gnuplotเพื่อดูรายการแฟล็กสำหรับการติดตั้ง gnuplot

ป.ล. และใช่ฉันดาวน์โหลด X11 dmg และติดตั้งโดยใช้โปรแกรมติดตั้งแพ็คเกจ แต่ gnuplot ยังไม่มี x11 ในรายการเทอร์มินัลที่รองรับ


2
เป็นประโยชน์มาก โปรดทราบว่ากราฟิกดูสะอาดกว่าสำหรับฉันโดยใช้เทอร์มินัล QT หรือ WxWindows ซึ่งสามารถติดตั้งได้ (ตามด้านข้างหากต้องการ) โดยใช้ตัวเลือกการติดตั้ง--qtและ--wxชงตามลำดับ
Bryan P

1
แทนที่จะbrew install gnuplot --with-xใช้brew reinstall gnuplot --with-x11(หากติดตั้ง gnuplot ไว้แล้ว - ดูเหมือนว่าจะไม่รองรับ -x อีกต่อไป)
Tushar

10

คุณสามารถลองสิ่งนี้:

>> brew reinstall gnuplot --with-aquaterm

หรือ

>> brew uninstall gnuplot
>> brew install gnuplot --with-aquaterm

สามารถใช้คำอธิบายเพิ่มเติมได้
Jens

3
โปรดทราบว่าคุณจำเป็นต้องติดตั้ง aquaterm ก่อนที่จะติดตั้ง gnuplot ใหม่ aquaterm.github.io
Lee Avital

with-aquatermไม่เป็นตัวเลือกที่ถูกต้องสำหรับ gnuplot: github.com/Homebrew/homebrew-core/issues/46923
ไท Hitzeman

8

สร้างไฟล์.octavercในโฮมไดเร็กทอรีของคุณและตั้งค่า GNUTERM เป็น X11

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

เปิดเทอร์มินัลคู่แปดและพิมพ์sombreroเพื่อตรวจสอบว่าการพล็อตทำงานหรือไม่

octave:1> sombrero

6

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

  1. Unistall gnuplot

    ชงถอนการติดตั้ง gnuplot

  2. ติดตั้ง AquaTerm คุณสามารถดาวน์โหลดได้จากที่นี่: http://sourceforge.net/projects/aquaterm/

  3. ติดตั้ง gnuplot อีกครั้ง

    ชงติดตั้ง gnuplot


หากคุณยังคงได้รับ "Segmentation Fault: 11" และ "ไม่สามารถโหลดแบบอักษรที่เหมาะสมได้" คำสั่งเหล่านี้ใช้ได้กับฉัน: brew uninstall fontconfig && brew install fontconfig --universal
Julian

6

Anton ถูกต้อง ตอนนี้คุณสามารถติดตั้ง gnuplot ใหม่ได้ด้วยตัวเลือก --with-aquaterm ฉันจะโหวตให้คำตอบของเขาถ้าฉันมีคะแนนชื่อเสียงเพียงพอที่จะทำ

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

Mackuntu กล่าวไว้ข้างต้นว่ามีการพูดถึงปัญหานี้ใน github

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

แต่เขาแนะนำให้ใช้ตัวเลือก - น้ำ หากคุณดูลิงก์ github อย่างใกล้ชิดคุณจะเห็นว่าตัวเลือกนั้นคือ - พร้อม - aquaterm การติดตั้ง gnuplot ใหม่ด้วยตัวเลือกนี้ในวันนี้ทำให้ฉันสามารถเรียกใช้โค้ดอ็อกเทฟเก่าที่ใช้ gnuplot สำหรับการพล็อตกราฟบน OS X


5

ฉันมีคำตอบที่ควรแก้ไขปัญหาที่คุณพบ โดยพื้นฐานแล้วสำหรับฉันปัญหาคือการสร้าง gnuplot ไม่พบไลบรารี AquaTerm ที่เหมาะสม ตรวจสอบโพสต์ที่ฉันสร้าง:

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


1
ขอบคุณสำหรับการแก้ปัญหา! :)
PGreen

5

ในกรณีของฉันบน Mas OS Mojave วิธีแก้ปัญหาที่ใช้ได้กับฉันแตกต่างกันเล็กน้อย (อาจเป็นเรื่องของไวยากรณ์เท่านั้น) หลังจากการสนทนาในหัวข้อนี้ฉันมาพร้อมกับโซลูชันที่ใช้ได้ผลสำหรับฉัน - อาจเป็นเรื่องสำคัญที่ต้องทราบว่าฉันสามารถพล็อตจาก Octave-cli ได้ แต่ไม่ใช่จากบรรทัดคำสั่ง Octave โดยตรงในเทอร์มินัล

ดังนั้นฉันจึงสร้าง˜/.octavercไฟล์และเพิ่มคำสั่งต่อไปนี้:

setenv GNUTERM qt

เพียงแค่ออกจากบรรทัดคำสั่งจากอ็อกเทฟแล้วป้อนอีกครั้งและสามารถพล็อตได้


5

สิ่งต่อไปนี้ใช้ได้ผลสำหรับฉัน:

setenv("GNUTERM","qt")

คุณสามารถรันบน octave cli สำหรับการรันโลคัลหรือสามารถตั้งค่าในไฟล์เริ่มต้นอ็อกเทฟสำหรับถาวร

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

โปรดจำไว้ว่าในกรณีที่คุณเปลี่ยนไฟล์ octaverc คุณต้องมีสิทธิ์ในการเขียน


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 อีกครั้งและทุกอย่างก็ทำงานได้ดี

fink install gnuplot-minimal
fink install gnuplot-nox

การติดตั้ง gnuplot-nox ดูเหมือนว่าจะตั้ง aqua เป็นเทอร์มินัลเริ่มต้นสำหรับ gnuplot ตรวจสอบโดยไปที่ gnuplot shell หากต้องการตรวจสอบว่าการพล็อตทำงานหรือไม่ให้พิมพ์ plot (1) ในเชลล์ ควรแสดงพล็อตในหน้าต่าง

หวังว่าจะเหมาะกับคุณ

เช่นเดียวกับที่แนะนำในโพสต์อื่น ๆ การตั้งค่า GNUTERM เป็น X11 ไม่ได้ช่วยแก้ปัญหานี้ให้ฉัน การติดตั้ง AquaTerm สำหรับ Mac OSX แบบตรงก็ไม่สามารถแก้ปัญหานี้ได้


2

คำตอบมีอยู่แล้วในข้างต้น แต่ฉันคิดว่าง่ายกว่านี้:

nano ~/.octaverc

เพิ่มสิ่งนี้:

setenv("GNUTERM", "X11")

นั่นคือรีสตาร์ทอ็อกเทฟเสร็จแล้ว


0

นี่คือวิธีแก้ปัญหาที่เหมาะกับฉัน (ขึ้นอยู่กับส่วนต่างๆของความคิดเห็นของ mackuntu)

Gnuplot ได้รับการติดตั้งให้คุณแล้วโดยคำสั่ง brew install octave ดังนั้นเราจำเป็นต้องลบออกก่อน

brew uninstall gnuplot

จากนั้นจะต้องติดตั้ง aquaterm ( http://sourceforge.net/projects/aquaterm/ )

หลังจากติดตั้งเสร็จแล้วคุณต้องติดตั้ง gnuplot อีกครั้ง เนื่องจากการชงตรวจพบการมีอยู่ของ aquaterm ระหว่างการติดตั้งและจะไม่ทำการตรวจสอบใด ๆ ในภายหลัง

brew install gnuplot --with-aquaterm

หากคุณเปิด gnuplot หลังจากติดตั้งควรแสดงว่ารองรับ aquaterm และกราฟิกทั้งหมดในอ็อกเทฟจะทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.