Octave 默认图例字体大小(八度)

Octave 默认图例字体大小(八度),octave,legend,default,default-value,legend-properties,Octave,Legend,Default,Default Value,Legend Properties,我的意思是在我的八度脚本中设置默认的图例字体大小(以及其他属性) 两个设置(单独激活) 生成错误:默认属性规范无效 正确的语法是什么? 在Matlab中,建议它不应该抛出任何错误,而且它可能会工作。从理论上讲,这也应该在倍频程中工作,因为,对于所有类型的图形对象“类型” 然而,legend是一个特例,因为它并没有在八度音阶中作为自己的图形对象“type”实现;相反,如文件中所述: A legend is implemented as an additional axes object with

我的意思是在我的八度脚本中设置默认的图例字体大小(以及其他属性)

两个
设置
(单独激活)

生成
错误:默认属性规范无效

正确的语法是什么?


在Matlab中,建议它不应该抛出任何错误,而且它可能会工作。

从理论上讲,这也应该在倍频程中工作,因为,对于所有类型的图形对象“类型”

然而,legend是一个特例,因为它并没有在八度音阶中作为自己的图形对象“type”实现;相反,如文件中所述:

 A legend is implemented as an additional axes object with the 'tag'
 property set to "legend".  Properties of the legend object may be
 manipulated directly by using 'set'.
因此,这意味着
defaultlegendfontsize
策略将不起作用

这也意味着,由于原则上“图例”对象是伪装的“轴”对象,
set(0,“defaultaxesfontsize”,30)
将起作用。。。但显然会产生影响所有轴对象的意外后果

如果你愿意的话,你可以在倍频程错误追踪中指出这一点

同时,您可以在.octaverc中执行以下操作作为解决方法:

function h = legend( varargin )
    % Wrapper to builtin legend function, also setting font to default size of 30
    h = builtin( 'legend', varargin{:} )
    set( h, 'fontsize', 30 )
endfunction
这有效地将内置的“legend”命令与自定义命令相隐藏,该命令在返回句柄之前将“default”值作为额外步骤应用


PS:话虽如此,在代码传播和重用的情况下,需要小心设置这些默认值,因为这些默认值假定在所有环境中都是预设的

例如,这是R用户对创建复杂的
.Rprofile
文件的常见警告



PS 2:或者,当你有很多默认值要应用时,一个不错的方法是创建一个函数
applydefaults(handle)
,它一次应用你所有的首选项,并在你想应用它们的任何对象的末尾调用它。这是我在论文中经常做的。这听起来可能有点费劲,但当你100%清楚发生了什么以及格式更改来自何处时,你会在接下来的一个月感谢自己

很好的澄清。实际上,我经常按照你的建议设置“格式化函数”。我会试试这个并发布反馈。
function h = legend( varargin )
    % Wrapper to builtin legend function, also setting font to default size of 30
    h = builtin( 'legend', varargin{:} )
    set( h, 'fontsize', 30 )
endfunction