【问题标题】:Matlab Put Labels on ClustersMatlab 在簇上放置标签
【发布时间】:2012-12-03 22:50:32
【问题描述】:

我已经实现了一个算法,这是我的资源书中的一个情节:

我是 Matlab 的新手。我有一个 xValues 列表、yValues 列表(我已将最终矩阵划分为 x 轴和 y 轴,我不确定这是不是真的,如果您提出建议,欢迎您)和一个标签向量。

我想得到一个像上面一样的图像。我怎样才能像给定的图像一样放置一些类标签(即 0、1、2、3..)?

PS:我是这样绘制的:plot(xValues,yValues,'b.'); 但是我的点像钻石,而不是像图像中的那样指向。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    您可以使用text 在场景中绘制文本。 (Matlab 帮助:)

    text(X,Y,'string') adds the text in the quotes to location (X,Y)
    on the current axes, where (X,Y) is in units from the current
    plot.
    

    您需要知道要在图表上的哪个位置绘制文本,但您可以这样做:

    x = -pi:.1:pi;
    y = sin(x);
    p = plot(x,y)
    
    text(-pi/4,sin(-pi/4),'7')
    text(-pi/4+1,sin(-pi/4),sprintf('%d', 8))
    text(-pi/4+2,sin(-pi/4),'9')
    

    这会给你这个:

    您可以使用常规的 matlab 注释添加不同的文本样式等。您还可以使用 sprintf 命令为集群自动添加所需的数字,正如我在绘制 8 时显示的那样。

    祝你好运。

    【讨论】:

    • 似乎我在有问题的图像中使用了一些不同的东西。看起来绘制图像的人并没有通过某些功能(即文本)将它们一张一张地放入图像中。有类标签,即 0 几乎重叠,所以看起来 Matlab 自动放置它们。
    • @kamaci 我不这么认为,我从来没有见过一个函数这样做,但它可能是一些自定义函数,包括text,你也可以通过在其中放置位置来重叠数字X 和 Y 靠得很近。
    • 你可能是对的,我的意思是想要手动放置标签的人可能不想放置重叠的标签。
    • @kamaci 如果您扩展问题,编写一个函数来完成您所要求的事情会很容易。数字应该在哪里参考数据(X 和 Y 列表)。这些数字应该是什么或它们代表什么?
    • @kamaci 仅供参考,Matlab agree with Ben's (+1) solution
    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多