MATLAB R2019a 不会显示原始线条的图例

Posted

技术标签:

【中文标题】MATLAB R2019a 不会显示原始线条的图例【英文标题】:MATLAB R2019a won't show legend of primitive lines 【发布时间】:2020-10-14 20:54:47 【问题描述】:

我最近更改为新版本的 Matlab (R2019),当我尝试在我的图表上添加图例时,我收到以下错误:

'' 输入的大小必须相同,或者任何一个都可以是标量。''

我正在使用的代码(在以前的 Matlab 版本中很好用)是这样的:

 x=rand(1,10);
y=rand(1,10);
zfTail=10;

figure(15); clf; hold on; box on

ph_f = plot(2.*x, 2*y, 'ro-.','LineWidth',2,'Color',[0 0.75 0]);
ph_fb = plot(x, y, 'ro-.','LineWidth',.3,'Color',[0.5 0.75 0]);
ph_ft = plot(3.*x, 3.*y, 'ro-.','LineWidth',1,'Color',[0 0.75 0.5]);

legend([ ph_f, ph_fb, ph_ft], 'Location', 'SouthWest',...
           'Escape time distribution',...
            ['Power-law fit, z = ' num2str(-zfTail,2)],...
           'Initial distribution'
            
           ,'FontSize',14)

这是我在 R2019 版本中得到的:

这就是我在旧版本 R2017b 上得到的

其中 ph_f、ph_fb、ph_ft 是原始 1X1 行 有人可以帮我吗?我无法找到解决方案。

【问题讨论】:

【参考方案1】:

参数'Escape time distribution', ['Power-law fit, z = ' num2str(-zfTail,2)], 'Initial distribution' 应该插入到行对象之后。以下应该有效:

hleg = legend([ph_f, ph_fb, ph_ft], 'Escape time distribution', ['Power-law fit, z = ' num2str(-zfTail,2)], 'Initial distribution');
hleg.FontSize = 14;
hleg.Location = 'southwest';

我不确定为什么不能在 R2019a 的同一行中包含 legendFontSizeLocation 属性。

【讨论】:

很抱歉,我刚刚对其进行了测试,但它似乎再次无法在 Matlab R2019a 上运行。 嗨@Jokerp,我错了,我使用的是 R2019b。我发现了 R2019a 的问题并更新了我的帖子。

以上是关于MATLAB R2019a 不会显示原始线条的图例的主要内容,如果未能解决你的问题,请参考以下文章

绘图图例显示未知项目/相同的图例项目以不同的线条显示两次

为线条/形状组合正确显示 ggplot 图例

Plotly:如何更改图例中显示的线条的大小?

更改线宽时,Seaborn FacetGrid图例会丢失线条样式细节

放置 MATLAB 图例,使其不会在绘图上重叠

即使自定义图例单击以使其不可见,如何在折线图中至少显示一行