Функция легенды в 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
Другие вопросы по тегам