如何通过图形编辑器在Matlab图例中订购项目?

时间:2013-08-10 13:39:06

标签: matlab legend

我创建了一组包含多组数据的直方图。数据集是彩色图像,转换为灰度并在给定时间段内拍摄(例如,图片1 @时间= 0,图片2 @时间= 5分钟等),这就是为什么我需要图例条目按特定顺序显示。当我把传奇放进去的时候,这些条目没有特定的顺序散落,我无法弄清楚如何按照我需要的方式切换条目。

6 个答案:

答案 0 :(得分:5)

2017a及以上(使用上面Peter M部分答案)

  1. 使用工具栏中的标准箭头按钮选择“编辑绘图”。这将允许您选择绘图线。
  2. 选择要在图例中首先显示的绘图线。
  3. 使用Ctrl-X(或OS X,Linux上的任何内容)来“剪切”绘图线。
  4. 创建一个新图(文件 - >新 - >图)。
  5. 使用Ctrl-V(或OS X,Linux上的任何内容)在新图中“粘贴”绘图线。
  6. “剪切”新图中的绘图线。
  7. 在原始图中“粘贴”绘图线。
  8. 按照您想要的顺序对每个绘图线重复步骤2-6 它们出现在传奇中。右键单击图例和 “刷新”

答案 1 :(得分:3)

如果您经常重新创建绘图,那么确保脚本按正确的顺序放置它们可能是个好主意。 Luis Mendo在这里提供了一个答案,但他对措辞略有不同的回答更为详细:how to change the sequence of the legend

仅限2017年!似乎2017a打破了这种行为,因此以下技巧在最新版本中不起作用。

要回答你的具体问题,如果你只是偶尔在一个没有多行的情节上做这个,并且只想使用图编辑器,这是一个巧妙的技巧......

  1. 选择"编辑地图"使用工具栏中的标准箭头按钮。这将允许您选择绘图线。
  2. 选择要在图例中首先显示的绘图线。
  3. 使用Ctrl-X(或OS X,Linux上的任何内容)来"剪切"情节线。
  4. 使用Ctrl-V(或OS X,Linux上的任何内容)来"粘贴"情节线。
  5. 按照您希望它们在图例中显示的顺序,为每个绘图线重复步骤2-4。
  6. 右键点击图例和"刷新"

答案 2 :(得分:0)

您可以获取每个绘制对象的句柄,并在图例中使用句柄来控制哪个字符串应用于哪个绘制对象。

示例:

h1 = plot(1:5, 1:5, 'r');
hold on
h2 = plot(1:5, 2:6, 'b');
legend([h1 h2],'First red','Second blue')

答案 3 :(得分:0)

The answer above also works for R2017a and higher...here is a little bit more general example:

x = 1:10;
y1 = x;
y2 = 2*x;
y3 = 3*x;
y4 = x.^2;
figure
plot(x, y1, x, y2, x, y3, x, y4);
lh = legend('y = x', 'y = 2*x', 'y = 3*x', 'y = x.^2');

legendEntries = get(gca,'legend')
plotHandles = get(gca,'children')
legendEntries = legendEntries.String;
newOrder = [3,4,1,2];
legend([plotHandles(newOrder)],legendEntries{newOrder})

答案 4 :(得分:0)

flipud(h)或fliplr(h)更改数组上下左右的完整顺序

答案 5 :(得分:0)

通过尝试和错误,我发现了这个简单的解决方法:

1)选择应该位于位置1(在顶部)的绘图线 2)Strg + X 3)同一图上的Strg + V

重复步骤2和3大约3或4次。这将导致图例出现在图例的底部。现在,选择应该位于第二个位置的图,再次选择步骤2和3。前一个图向上移动一个位置,第二个选择的图现在位于底部。...以相同的方式继续其余图