2

我创建了一个包含多组数据的直方图。数据集是转换为灰度的彩色图像,并在给定的时间段内拍摄(例如 pic 1 @ time=0,pic 2 @ time=5min 等),这就是为什么我需要图例条目以特定顺序显示的原因. 当我放入图例时,条目散布在没有特定顺序的地方,我无法弄清楚如何按照我需要的方式切换条目。

4

6 回答 6

6

在 2017a 及更高版本(使用上面Peter M的部分答案)

  1. 使用工具栏中的标准箭头按钮选择“编辑绘图”。这将允许您选择绘图线。
  2. 选择要在图例中首先出现的绘图线。
  3. 使用 Ctrl-X(或 OS X、Linux 上的任何东西)“剪切”绘图线。
  4. 创建一个新图形(文件->新建->图形)。
  5. 使用 Ctrl-V(或 OS X、Linux 上的任何东西)在新图中“粘贴”绘图线。
  6. “剪切”新图形中的绘图线。
  7. 在原始图中“粘贴”绘图线。
  8. 按照您希望它们出现在图例中的顺序,对每条绘图线重复步骤 2-6。右键单击图例并“刷新”
于 2018-01-03T09:53:24.927 回答
3

如果您经常重新生成情节,那么确保脚本以正确的顺序放置它们可能是一个好主意。Luis Mendo 在这里提供了一个答案,但他对稍微不同的措辞的回答更详细一点:如何更改图例的顺序

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

要回答您的具体问题,如果您只是偶尔在没有很多行的情节上执行此操作,并且只想使用图形编辑器,那么这里有一个巧妙的技巧......

  1. 使用工具栏中的标准箭头按钮选择“编辑绘图”。这将允许您选择绘图线。
  2. 选择要在图例中首先出现的绘图线。
  3. 使用 Ctrl-X(或 OS X、Linux 上的任何东西)“剪切”绘图线。
  4. 使用 Ctrl-V(或 OS X、Linux 上的任何东西)“粘贴”绘图线。
  5. 按照您希望它们出现在图例中的顺序,对每条绘图线重复步骤 2-4。
  6. 右键单击图例并“刷新”
于 2015-12-16T17:00:09.467 回答
0

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

例子:

h1 = plot(1:5, 1:5, 'r');
hold on
h2 = plot(1:5, 2:6, 'b');
legend([h1 h2],'First red','Second blue')
于 2013-08-10T14:05:11.900 回答
0

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

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

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

于 2018-11-21T20:05:51.690 回答
0

上面的答案也适用于 R2017a 及更高版本......这里有一个更一般的例子:

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})
于 2017-12-08T15:36:30.677 回答
0

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

于 2018-03-06T07:54:01.520 回答