gpt4 book ai didi

matlab - 如何将文本标签(键)放在图例中线条的左侧?

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:06 25 4
gpt4 key购买 nike

我搜索了很多地方,但没有找到一种方法来实现我想使用 MATLAB 实现的目标,即:将键(文本标签)放在 MATLAB 中图例中颜色线的左侧。

enter image description here

我想实现这个结果,这是默认结果,例如使用 gnuplot(参见上面的链接),这显然可以使用 MATLAB 的表亲 Octave(参见 Octave's legend),它可以选择执行 legend( "left") 即“将 [s] 标签文本放置在键的左侧。”

是否可以使用 MATLAB 这样做?

最佳答案

使用 @nirvana-msu 提到的 legend 的第二个输出进行了轻微更新

我们可以通过检索它们的当前位置并更改它来调整图例中文本和绘图对象的位置。图例中所有项的位置单位均为0~1之间的归一化数据单位。

像下面这样的东西应该可以工作。

%// Create some random data and display
figure;
p = plot(rand(2,3));
[L, handles] = legend({'one', 'two', 'three'});

%// Get the text handles
texts = findall(handles, 'type', 'text');

%// Get the line handles
lines = findall(handles, 'type', 'line');

%// Get the XData of all the lines
poslines = get(lines, 'XData');

%// Subtract 1 from all the positions and take the absolute value
%// this will shift them to the other side as the xlims are [0 1]
set(lines, {'XData'}, cellfun(@(x)abs(x - 1), poslines, 'uni', 0))

%// Get the position of all of the text labels
postext = get(texts, 'Position');

%// Figure out where the lines ended up
xd = get(lines, 'xdata');
xd = cat(2, xd{:});

%// Have the labels be next to the line (with 0.05 padding)
positions = cellfun(@(x)[min(xd) - 0.05, x(2:3)], postext, 'uni', 0);
set(texts, {'Position'}, positions, ...
'HorizontalAlignment', 'right');

R2014a

enter image description here

R2015b

enter image description here

关于matlab - 如何将文本标签(键)放在图例中线条的左侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37286345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com