我想在 3D 绘图的数据点处添加文本。我希望我的 xx
、yy
和 zz
向量的内容是它们对应点的文本。
xx = [124 87];
yy = [50 37];
zz = 1.0e-2*[0.4170 0.3163];
[x,y]=meshgrid(0:150,0:60);
z=zeros(size(x));
z(sub2ind(size(z),yy,xx))=zz;
surf(x,y,z)
下面是我尝试在循环中添加文本,以便它们可以显示在图表上的正确位置。
str = {};
for i=1:size(xx)
str{i} = strcat( num2str(xx(i)), num2str(yy(i)), num2str(zz(i)) );
end
text(xx,yy,zz,str)
我希望我的图形显示的文本与下图有些相似。下图也是正确的图。
最佳答案
str 应该是嵌套元胞数组,而不是 strcat。
以下代码将起作用。
str = cell(size(xx, 2), 1);
for i=1:size(xx, 2)
str{i} = {num2str(xx(i)), num2str(yy(i)), num2str(zz(i))};
end
text(xx, yy, zz,str)
为了向标签添加“x:”、“y:”和“z:”并显示偏移量 (10%),我会这样做。
str = cell(size(xx, 2), 1);
for i=1:size(xx, 2)
str{i} = {['x: ' num2str(xx(i))], ['y: ' num2str(yy(i))], ['z: ' num2str(zz(i))]};
end
text(xx+0.1*xx, yy+0.1*yy, zz,str)
关于matlab - 在 3D 图形中的点处从向量添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51922692/