GNU Octave 的图例功能已损坏

GNU Octave 的图例功能已损坏

我正在大的使用 Ubuntu 14.04 LTS 附带的默认 GNU Octave (3.8.1) 生成高质量图表时遇到麻烦。我试图重新运行一些现有代码(数千行代码),但代码有问题,因为中间图表到处都有图例。我知道代码库是合法的 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

答案1

我遇到了同样的问题,删除八度音程弦会导致其他错误。因此,我改用“try”语句,如下所示:

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

这似乎很有效。

答案2

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

相关内容