Matlab 中插入legend,但是里面显示的颜色和图不一样怎么改
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab 中插入legend,但是里面显示的颜色和图不一样怎么改相关的知识,希望对你有一定的参考价值。
各种颜色属性选项:'r' 红色 'm' 粉红
'g' 绿色 'c' 青色
32
'b' 兰色 'w' 白色
'y' 黄色 'k' 黑色
各种线型属性选项
选 项 意 义 选 项 意 义
'-' 实线 '--' 虚线
':' 点线 '-.' 点划线
各种标记点属性选项
选 项 意 义 选 项意 义
'.' 用点号绘制各数据点 '^' 用上三角绘制各数据点
'+' 用'+'号绘制各数据点 'v' 用下三角绘制各数据点
'*' 用'*'号绘制各数据点 '>' 用右三角绘制各数据点
' .' 用'.'号绘制各数据点 '<' 用左三角绘制各数据点
's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点
'd'或diamond用菱 形绘制各数据点 'h' 用六角星绘制各数据点
这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿
色的 '+'号绘制曲线. 参考技术A x1=linspace(-10,10);y1=1./(1+x1.^2);
x2=x1;y2=sin(x2);
plot(x1,y1,'r',x2,y2,'b');
legend('legend-red','legend-blue');
注意顺序legend中的顺序应该和plot绘图的先后顺序的对应。 参考技术B 在图片编辑里面改了!
来自单元格的 Matlab 图例,用于使用 for 循环创建的绘图
【中文标题】来自单元格的 Matlab 图例,用于使用 for 循环创建的绘图【英文标题】:Matlab legend from cell for plot created with for-loop 【发布时间】:2019-12-25 03:42:57 【问题描述】:我想在下面的虚拟代码中使用名为标签的单元格在 Matlab 中创建一个图例。我已阅读此论坛中的手册和帖子,建议使用 legend(labels:) - 但它仍然只显示最后一个图例条目。 legend('show') 显示所有条目,但未使用标签中定义的正确名称。我做错了什么?
clc;
clear;
close all;
format long;
data = cell(4,2);
for number = 1:2
data1,number = [1 3 5];
data2,number = [4 2 9];
data3,number = [2 7 3];
data4,number = [7 4 2];
end
labels = cell(4,2);
for number = 1:2
labels1,number = strcat(string(number), ': legend entry 1');
labels2,number = strcat(string(number), ': legend entry 2');
labels3,number = strcat(string(number), ': legend entry 3');
labels4,number = strcat(string(number), ': legend entry 4');
end
x = 1:3;
figure;
hold on;
for i = 1:numel(data)
plot(x, datai,'-o','LineWidth',1.1);
end
hold off;
legend(labels:);
% legend('show');
xlim([0.5 3+0.5]);
ylim([0 10]);
set(gca, 'xTick', 1:3, 'yTick', 0:1:10 );
ytickformat('percentage');
xlabel('Scenarios');
【问题讨论】:
您的标签变量是一个 4x2 元胞数组。你期待什么样的传奇? 【参考方案1】:这样做:
labels1,number = strcat(string(number), ': legend entry 1');
labels2,number = strcat(string(number), ': legend entry 2');
labels3,number = strcat(string(number), ': legend entry 3');
labels4,number = strcat(string(number), ': legend entry 4');
因为否则您在单元格内创建单元格,它们必须是单元格内的字符串。
clc;
clear;
close all;
format long;
data = cell(4,2);
for number = 1:2
data1,number = [1 3 5];
data2,number = [4 2 9];
data3,number = [2 7 3];
data4,number = [7 4 2];
end
labels = cell(4,2);
for number = 1:2
labels1,number = strcat(string(number), ': legend entry 1');
labels2,number = strcat(string(number), ': legend entry 2');
labels3,number = strcat(string(number), ': legend entry 3');
labels4,number = strcat(string(number), ': legend entry 4');
end
x = 1:3;
figure;
hold on;
for i = 1:numel(data)
plot(x, datai,'-o','LineWidth',1.1);
end
hold off;
legend(labels:);
% legend('show');
xlim([0.5 3+0.5]);
ylim([0 10]);
set(gca, 'xTick', 1:3, 'yTick', 0:1:10 );
ytickformat('percentage');
xlabel('Scenarios');
现在是正确的。
图形输出:
【讨论】:
以上是关于Matlab 中插入legend,但是里面显示的颜色和图不一样怎么改的主要内容,如果未能解决你的问题,请参考以下文章