在Matlab图中交互式地改变数据点的颜色

时间:2012-07-11 18:18:22

标签: matlab colors plot mouse

我正在研究Matlab Plot。我有两个问题。

1)绘图后,当用户选择该数据点的数据点颜色应该改变

2)我需要获取该数据点的x和y值

任何想法?

3 个答案:

答案 0 :(得分:1)

使用工具栏中的Data Cursor

答案 1 :(得分:1)

对于获取用户输入的第一种情况,您可以尝试ginput对于第二种情况,如果您要显示图像,请使用imtool。它将显示像素位置以及像素值。

答案 2 :(得分:0)

问题是4岁,但完整的答案可能对某人有帮助,所以在这里......

绘制数据:

plot(rand(5,1),'.b','MarkerSize',40) % Large blue dots just to make it clear
hold on

创建一个datacursor对象:

dcm_obj = datacursormode(gcf);

为数据光标设置自定义更新功能:

set(dcm_obj,'UpdateFcn',@dcfun)

然后定义函数:

function txt = dcfun(~,event_obj)
pos = event_obj.Position;
delete(findall(gcf,'Tag','DEL'))
plot(gca,pos(1),pos(2),'.r','Markersize',40,'Tag','DEL')
txt = cell(2,1);
txt{1} = ['x: ',num2str(pos(1))];
txt{2} = ['y: ',num2str(pos(2))];

现在只需单击工具栏中的数据光标工具,然后单击数据点。

enter image description here