Не могу заговорить с gnuplot на моем Mac


47

Я пытаюсь построить gnuplot на моем Mac (OS X 10.8.5). Я установил X11 и XQuartz 2.7.4 и после этого я установил gnuplot, но, к сожалению, gnuplot не смог построить.

Простые графики, подобные приведенным ниже, не отображаются и не содержат сообщений об ошибках, помогающих понять, что не так:

 [1/10/13 $gnuplot >plot sin(x)

2
Можете ли вы сказать более конкретно, что не работает? Возможно, команды, которые вы используете, сообщения об ошибках и результаты?
Скотт

1
Когда я хочу построить sin (x) в gnuplot, он не может построить график и безошибочно переходит на следующую строку. $ gnuplot> plot sin (x)>
Сохейл,

Пожалуйста, отредактируйте соответствующие детали в тексте вопроса. Комментарии очищаются время от времени, и мы не хотели бы терять проблему, когда это происходит здесь.
bmike

1
Как именно вы его установили?
user151019 30.09.13

Xterm дает вам Xterminal?
user151019 30.09.13

Ответы:


49

То же самое случилось со мной, но потом я побежал

brew uninstall gnuplot; brew install gnuplot --with-x11

и установил XQuartz . Теперь gnuplotподдерживает x11терминал:

Вы также можете сохранить вывод в файл и использовать qlmanage -p:

gnuplot -e 'set term png; set output "/tmp/plot.png"; plot sin(x)'; qlmanage -p /tmp/plot.png

qlmanage -pпоказывает ошибку песочницы в 10.9 и выводит ненужный текст в STDOUT, поэтому я использую функцию, как ql() { qlmanage -p "$@"&>/dev/null; }в оболочках.

Третий вариант - использовать set term dumbдля вывода простого текста.


1
Может быть, я не спешу сегодня, но я потратил хорошие 15 минут в документации по gnuplot, ища простой пример, подобный этому ... или, возможно, документы делают некоторые предположения об аудитории, и я не один из них :)
Джаред Бек

5
xQuartz тяжелый и каким-то образом доморощенный не упаковывает его. Вместо этого я выбрал опцию --qt, bew install gnuplot --qtи теперь она работает нормально.
bibstha

3
Имя параметра изменилось на, --with-x11но я не могу редактировать только два символа.
мгд

1
Обратите внимание, что иногда вам необходимо выйти и снова войти в систему после установки XQuartz. (не знаю почему, но он не установил переменную $ DISPLAY правильно, пока я не вышел из системы) Кроме того, очень полезно установить XQuartz : caskroom.io : brew cask install xquartz
caesarsol

не работает для OS X Yosemite
Mateusz Piotrowski

24

В OS X Yosemite 10.10.2 и El Capitan 10.11.2 Gnuplot не упаковывается с XQuartz. Ответ в комментарии bibstha . Гораздо более надежный оконный менеджер в Qt, и он работает

 brew uninstall gnuplot
 brew install gnuplot --with-qt

Обратите внимание, что использование --qtустарело сейчас.


Как примечание,Warning: gnuplot: --qt was deprecated; using --with-qt instead!
витали

@vitaly Интересно. Я не получил это предупреждение или проигнорировал. Я изменил команду.
Лео Леопольд Герц 준영

--qt должен был быть действительным в какой-то момент, а затем устарел
vitaly

1
Почему бы не выбрать оба: brew install gnuplot --with-qt --with-x11.
Кенорб

Из-за ошибки, связанной с X11 в Yosemite. В настоящее время не используется Yosemite, поэтому не может проверить последние обновления.
Лео Леопольд Герц 준영

4

Вы запускаете это из окна терминала или из окна X11? Терминал запустит X11 отдельно, чтобы показать сюжет, поэтому он может не быть непосредственным (или видимым). X11 вообще запускается при вводе plotкоманды?

Если вы попробуете это в окне X11, результат должен быть более немедленным.

Кроме того, если вы использовали macports для первоначальной установки, я бы порекомендовал использовать homebrewвместо:

brew install gnuplot

РЕДАКТИРОВАТЬ : Чтобы проверить, куда идет вывод, вы можете направить свои результаты в файл:

set terminal png
set output 'testimage.png'
plot sin(x)
exit

Затем посмотрите, testimage.pngсодержит ли файл с названием ваш график. Вы также можете попробовать указать терминал с помощью:

set terminal x11

Да, вы правы, и последнее> не является частью моей команды. Кроме того, я работаю из окна терминала и окна X11 по отдельности, но ни один из них не может построить.
Сохейл

Тогда я бы попытался переустановить с brew. Трудно диагностировать, не зная больше о вашей установке.
Beroe

(Обновленный ответ с другой вещью, чтобы проверить ...)
Beroe

Почему замена macports на brew имеет значение, поскольку они оба работают - оба гораздо лучше, чем самостоятельно
user151019

По моему опыту, у меня проблемы с библиотеками и зависимостями при использовании macports, поэтому я перестал это делать ...
beroe

1

В Йосемити изначально у меня были установлены кварц и оружейный участок 5.0.0. Тем не менее, я не мог загрузить свое окно x11 (все остальное было file-X11 было как-то неизвестно). Вот обходной путь, который «работал для меня».

Перейти в исходную папку оружейного участка

make clean; 
make uninstall

затем в файле «настроить» под следующими строками

# Standard set of common directories for X headers.

# Check X11 before X11Rn because it is often a symlink to the current release.

---added the location of my X11 files also  
/opt/X11/include

сейчас беги

./configure
make
sudo make install

работал отлично для меня, как вы видите ниже

G N U P L O T
Version 5.0 patchlevel 0    last modified 2015-01-01 

Copyright (C) 1986-1993, 1998, 2004, 2007-2015
Thomas Williams, Colin Kelley and many others

gnuplot home:     http://www.gnuplot.info
faq, bugs, etc:   type "help FAQ"
immediate help:   type "help"  (plot window: hit 'h')

Тип терминала set to 'x11'.


Как вы установили X11 / opt не обычно, я думаю
user151019

0

Благодарю. После загрузки gunplot 5.0 и установки под Yosemite 10.10.2, gnuplot не смог «загрузить» терминал x11. После указания файла конфигурации на / opt / X11 / include (перенастройка, перекомпоновка и переустановка) все работало нормально. (Я тоже был удивлен, что X11 находится в / opt / X11.)


Почему бы не использовать кварцевый бэкэнд вместо X11
user151019

0

Большая часть советов здесь показывает, как установить / переустановить GNUPlot через brew. Если у вас установлена ​​GNUPlot и вы не уверены, какой терминал он использует, вы можете определить это следующим образом:

$ gnuplot <<<'show terminal'

   terminal type is qt 0 font "Sans,9"

В этот момент мы теперь знаем, что используем qtтип терминала. Теперь, имея в своем распоряжении тонкую информацию, вы можете решить, какие действия предпринять, либо следуя одному из других ответов, чтобы переустановить GNUPlot через, brewлибо сконфигурировав свой существующий терминал любым удобным для вас способом через set terminal ..... команда.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.