A função de legenda do GNU Octave está quebrada

0

Estou com problemas grandes produzindo gráficos de qualidade com o padrão GNU Octave (3.8.1), que vem com o Ubuntu 14.04 LTS. Eu estou tentando re-executar algum código existente (milhares de linhas de código) e o código está quebrado porque há gráficos intermediários com legendas aqui e ali. Eu sei que o código base é um código legítimo do GNU Octave.

Aqui está um exemplo de falha mínima:

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')

Esta é a saída no 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
    
por Anders 23.05.2015 / 17:42

2 respostas

0

Eu tive o mesmo problema e ao remover sequências de oitavas causou outros erros. Então, em vez disso, usei a instrução "try", da seguinte maneira:

try
  legend(["str1 "; "str2"; "str3"; "str4"; "str5"], 
          "location", "northeast",
          "orientation", "vertical");
catch
end_try_catch

Isso parece fazer o truque.

    
por Peter 27.05.2015 / 14:34
0

Steeldriver, você salvou meu fim de semana. Muito obrigado! Eu tive o mesmo problema que o bug em

http://savannah.gnu.org/bugs/?41390

e foi suficiente para remover o pacote

sudo apt remove octave-strings

do repositório de pacotes do Ubuntu. Parece que o pacote GNU Octave padrão não é compatível com todos os pacotes "add-on" do Octave-Forge no repositório padrão. Você consegue reproduzir o bug instalando esse pacote? Talvez essa inconsistência deva ser relatada em algum lugar.

Btw, a saída de

apt-cache policy octave-strings 

foi

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

e a saída de

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
    
por Anders 23.05.2015 / 19:12

Tags