2012-12-03 3 views
5

tôi đã thực hiện một thuật toán và đây là một âm mưu từ Sách tham khảo của tôi:Matlab Đặt Labels trên Clusters

enter image description here

Tôi mới vào Matlab. Tôi có một danh sách xValues, danh sách yValues ​​(tôi đã chia ma trận cuối cùng của tôi thành trục x và y, tôi không chắc chắn là đúng, nếu bạn đưa ra một gợi ý bạn được chào đón) và một vectơ nhãn.

Tôi muốn có hình ảnh giống như ở trên. Làm thế nào tôi có thể đặt một số nhãn lớp (tức là 0,1,2,3 ..) giống như hình ảnh đã cho?

PS: Tôi vẽ như sau: plot(xValues,yValues,'b.'); tuy nhiên các chấm của tôi giống như hình thoi, không giống như trong hình ảnh.

Trả lời

2

Bạn có thể sử dụng text để vẽ văn bản trên hiện trường. (Matlab giúp đỡ :)

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. 

Bạn sẽ cần phải biết nơi trên đồ thị bạn muốn âm mưu văn bản của bạn nhưng bạn có thể làm điều này:

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') 

mà sẽ cung cấp cho bạn điều này:

enter image description here

Bạn có thể thêm các kiểu văn bản khác nhau v.v. với các chú thích thường xuyên của MATLAB. Bạn cũng có thể tự động thêm số bạn muốn cho cụm của mình bằng lệnh sprintf như tôi đã hiển thị khi tôi vẽ ô 8.

Chúc may mắn.

+0

Có vẻ như tôi có điều gì đó khác được sử dụng ở hình ảnh được đề cập. Có vẻ như người vẽ hình ảnh không đưa chúng vào hình ảnh 1 bằng 1 với một số chức năng tức là văn bản. Có các nhãn lớp tức là 0 gần như bị chồng chéo nên có vẻ như Matlab tự động đặt chúng. – kamaci

+0

@kamaci Tôi không nghĩ vậy, tôi chưa bao giờ thấy một chức năng làm điều đó, nhưng nó có thể là một số chức năng tùy chỉnh bao gồm 'văn bản', bạn cũng có thể chồng chéo các số chỉ bằng cách đặt vị trí trong X và Y gần nhau. –

+0

Bạn có thể đúng, ý tôi là người muốn dán nhãn bằng tay có thể không muốn đặt nhãn chồng lên nhau. – kamaci