【问题标题】:Define custom linestyles in Octave for use on multiple figures在 Octave 中定义自定义线型以用于多个图形
【发布时间】:2019-08-30 09:00:24
【问题描述】:

我想在 Octave 中定义线条样式(如在 gnuplot 中)以供进一步使用:

我正在考虑类似的事情:

styles = {['color',[.5 .2 .8],'--', 'linewidth', 1.25], ['or', markersize, 4], 
['-sb', markersize, 2]}

plot (x,y, styles{1})
plot (x,y, styles{2})

等等。但是这样的事情并没有奏效。有人对如何解决这个问题有任何建议吗?

提前致谢。

【问题讨论】:

    标签: octave linestyle


    【解决方案1】:

    让我们来看看,MATLAB 做了什么并复制思路:你可以使用Comma-Separated Lists as Function Call Arguments。实际上,有一个示例准确地描述了您想要实现的目标。然而,要让这个工作如你所愿,你还必须正确地“拆卸”LineSpec。请看下面的代码sn -p 得到你给出的例子的解决方案。

    x = linspace(0, 2*pi, 50);
    
    % styles = {['color',[.5 .2 .8],'--', 'linewidth', 1.25], ['or', markersize, 4], ['-sb', markersize, 2]}
    
    styles = {
      {'Color', [.5 .2 .8], 'LineStyle', '--', 'LineWidth', 1.25}, ...
      {'Color', 'r', 'Marker', 'o', 'MarkerSize', 4}, ...
      {'Color', 'b', 'LineStyle', '-', 'Marker', 's', 'MarkerSize', 2} ...
    };
    
    figure(1);
    hold on;
    
    for ii = 1:numel(styles)
      plot(x, sin(x + ii * pi/4), styles{ii}{:});
    end
    
    hold off;
    
    legend();
    

    而且,这是一个示例性输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多