Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在matlab绘图窗口中自定义图例_Matlab_Plot_Matlab Figure_Legend - Fatal编程技术网

如何在matlab绘图窗口中自定义图例

如何在matlab绘图窗口中自定义图例,matlab,plot,matlab-figure,legend,Matlab,Plot,Matlab Figure,Legend,如下图所示,图例对于绘图窗口来说太长。我想做的是: 1-知道如何在第二行上拆分图例吗 2-了解如何缩短图例中所示的红线。如您所见,图例中包含一条红线(x1=…),我想知道是否有可能缩短该红线或控制其长度 控制图例内容有两种可能: 使用TeX命令:MATLAB使用TeX解析图例条目(以及标题、标签等)。您可以使用大多数TeX功能和符号。您可以在解释器部分的中找到一些详细信息 sprintf:sprintf函数与所有printf函数一样工作,并输出字符串。它允许您添加控制字符,如\n,插入变量等。有

如下图所示,图例对于绘图窗口来说太长。我想做的是:

1-知道如何在第二行上拆分图例吗

2-了解如何缩短图例中所示的红线。如您所见,图例中包含一条红线(x1=…),我想知道是否有可能缩短该红线或控制其长度


控制图例内容有两种可能:

  • 使用TeX命令:MATLAB使用TeX解析图例条目(以及标题、标签等)。您可以使用大多数TeX功能和符号。您可以在解释器部分的中找到一些详细信息

  • sprintf
    sprintf
    函数与所有
    printf
    函数一样工作,并输出字符串。它允许您添加控制字符,如
    \n
    ,插入变量等。有关详细信息,请查看

  • 在您的情况下,可以使用以下任一代码段:

    legend('x1 = x = ... \newline ...');
    legend(sprintf('x1 = x = ... \n, ...'));
    

    关于你的第二个问题:我不知道有任何可能改变这条路线。抱歉。

    至于第二个问题-您可以使用两个输出参数调用图例:

    [h,att] = legend('show')
    
    然后使用
    att.XData
    属性来操作这一行

    plot(sin(-pi:0.1:pi),'r')
    [h,att] = legend('show')
    att(2).XData(2) = 0.2;
    
    结果是:


    @user2121如果此答案对您有帮助,请遵循网站指南和此答案