Функция легенды в GNU Octave не работает
У меня большие проблемы с производством качественных графиков с помощью стандартной GNU Octave (3.8.1), которая поставляется с Ubuntu 14.04 LTS. Я пытаюсь повторно запустить какой-то существующий код (тысячи строк кода), и код не работает, потому что здесь и там есть промежуточные сюжеты с легендами. Я знаю, что кодовая база является законным кодом GNU Octave.
Вот минимальный пример сбоя:
graphics_toolkit('gnuplot') # I need this for TeX-like labels,
# but I doubt this cause a trouble with legend
R = 2000;
N = R/4;
t = (0:N-1)/R;
figure # plot without legend which works fine
plot(t*1000, sin(2*pi*100*t), 'b')
xlabel('t ms')
ylabel('p_e Pa')
figure # plot with legend which crash
plot(t*1000, sin(2*pi*100*t), 'b; sine wave;')
xlabel('t ms')
ylabel('p_e Pa')
Это вывод в GNU Octave:
>> error: invalid value = northeast
>> error: set: invalid value for radio property "location" (value = northeast)
>> error: called from:
>> error: /usr/share/octave/3.8.1/m/plot/appearance/legend.m at line 995, column 11
>> error: /usr/share/octave/3.8.1/m/plot/draw/private/__plt__.m at line 149, column 7
>> error: /usr/share/octave/3.8.1/m/plot/draw/plot.m at line 220, column 10
2 ответа
У меня была такая же проблема и при удалении октавных строк возникали другие ошибки. Поэтому вместо этого я использовал оператор try следующим образом:
try
legend(["str1 "; "str2"; "str3"; "str4"; "str5"],
"location", "northeast",
"orientation", "vertical");
catch
end_try_catch
Это, кажется, делает трюк.
Steeldriver, ты спас мои выходные. Большое спасибо! У меня была такая же проблема, как ошибка в
http://savannah.gnu.org/bugs/?41390
и достаточно было убрать посылку
sudo apt remove octave-strings
из репозитория пакетов Ubuntu. Похоже, что стандартный пакет GNU Octave несовместим со всеми пакетами дополнений Octave-Forge в репозитории по умолчанию. Вы можете воспроизвести ошибку, установив этот пакет? Может быть, об этом несоответствии нужно сообщать где-нибудь.
Кстати, выход
apt-cache policy octave-strings
было
>> octave-strings:
>> Installé : 1.1.0-1build1
>> Candidat : 1.1.0-1build1
>> Table de version :
>> *** 1.1.0-1build1 0
>> 500 http://fr.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
>> 100 /var/lib/dpkg/status
и выход
apt-cache policy octave
является
>> octave:
>> Installé : 3.8.1-1ubuntu1
>> Candidat : 3.8.1-1ubuntu1
>> Table de version :
>> *** 3.8.1-1ubuntu1 0
>> 500 http://fr.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
>> 100 /var/lib/dpkg/status