我有一个2列矩阵(称为M
,我使用Matlab的plot
命令(plot(M)
)可视化为两个向量。我有两个问题:
我将如何做这些事情?
答案 0 :(得分:3)
一个例子:
M = cumsum(rand(10,2) - 0.5);
x = 1:size(M,1);
plot(x, M(:,1), 'b.-', x, M(:,2), 'g.-')
legend('M1', 'M2')
for i=x
text(i+0.1, M(i,1), sprintf('%.2f', M(i,1)), 'FontSize',7, 'Color','b');
text(i+0.1, M(i,2), sprintf('%.2f', M(i,2)), 'FontSize',7, 'Color','g');
end
或者,您可以使用:
datacursormode()
这将使用户只需point and click on points即可查看数据标签。
答案 1 :(得分:1)
您可能需要对此进行调整以准确获取标签的位置,但这样的方法可以解决问题。
M = [1 2; 3 4; 5 6]
plot(M)
nrows = size(M, 1);
ncols = size(M, 2);
x = repmat(nrows - .3, 1, ncols);
y = M(end, :) - .3;
labels = cellstr([repmat('Col', ncols, 1), num2str((1:ncols)')]);
text(x, y, labels)
答案 2 :(得分:0)
您可以使用以下功能标记每个轴:
xlabel('label')
ylabel('label')
这些也可以采用单元格参数,其中每一行都是一个新行。这对于展示单位很方便。标记图上的每个点都可以这样做:
for i=1:length(M)
text(M(i,1),M(i,2),'Label Text')
end
标签文本也可以是一个字符串变量,您可以使用sprintf编辑该字符串变量,并为每个点创建特殊字符串。