我正在大的使用 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