在3D图形中的点处从矢量添加文本

时间:2018-08-19 23:49:33

标签: matlab plot

我想在3D图的数据点处添加文本。我希望我的xxyyzz向量的内容是它们对应点的文本。

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)

我希望我的图表显示的文本与下面的图像有些相似。下面的图形也是正确的图形。

enter image description here

1 个答案:

答案 0 :(得分:6)

str应该是嵌套的单元格数组,而不是strcat。

以下代码将起作用。

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="centered-query">
  <div class="row justify-content-center">
    <div class="col-lg-9 col-12">
      <div class="input-group">
        <input type="text" class="form-control input-text first">
        <input type="text" class="form-control input-text second">
        <div class="input-group-append">
          <button type="submit" class="btn">Go</button>
        </div>
      </div>
    </div>
  </div>
</div>

enter image description here

要在标签上添加“ x:”,“ y:”和“ z:”并以偏移量(10%)进行显示,我可以这样做。

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)

enter image description here