将数据从单元格绘制到散点图MATLAB

时间:2014-09-24 01:19:06

标签: arrays matlab matrix plot cell

我目前正在尝试自学一些MATLAB绘图函数,并且我想知道是否可以直接从矩阵绘制到散点图。

我开始使用像这样的1x9单元格:

x = ['Dog' [3] [5] 'Cat' [6] [1] 'Goldfish' [7] [8]]

然后像这样创建一个3 x 3的单元格:

x = reshape(x.',3,[]).';

产生

x = 
    'Dog' [3] [5]
    'Cat' [6] [1]
    'Goldfish' [7] [8]

我现在想要做的是从这些数据中创建一个散点图,并使用第一列作为图上的标签。因此,例如,点(3,5)将具有标签" Dog"

不太清楚如何做到这一点,但我认为图例功能可能有助于创建标签。

有没有办法优雅地做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用text函数执行此类操作,该函数会在您指定的位置创建文本。所以,如果您像这样绘制数据:

plot(x(:,2),x(:,3),'x');
你可以得到这样的标签:

text(x(:,2),x(:,3),x(:,1));

您可能需要添加一个小常量,以使标签不与点重叠。您可能需要根据自己的喜好来调整一下这个值。

c = 0.1;
text(x(:,2) + c,x(:,3),x(:,1));