matlab中画散点图时怎样在每个点上标记符号?
matlab中画10个点,怎样在每个点上表上相应的符号?分别标注:A,A1,A2,A3,B,B1,B2,B3,C,C1不用手动标注,因为有很多点....要代码。谢谢~~...
matlab中画10个点,怎样在每个点上表上相应的符号?分别标注:A,A1,A2,A3,B,B1,B2,B3,C,C1
不用手动标注,因为有很多点....要代码。谢谢~~ 展开
不用手动标注,因为有很多点....要代码。谢谢~~ 展开
3个回答
展开全部
利用text标记在指定位置显示文字
x=rand(1,10)*10; %因为没有数据,这里用随即数生成10个点的x,y坐标
y=rand(1,10)*10;
L={'A','A1','A2','A3','B','B1','B2','B3','C','C1'}; %10个标注
plot(x,y,'.'); %画十个点
for ii=1:10
text(x(ii)+0.1,y(ii)+0.1,L{ii}); %利用十个点的坐标添加对应标注
%适当增加一些距离,让文字和点分开会美观一些
end
figure(gcf);
x=rand(1,10)*10; %因为没有数据,这里用随即数生成10个点的x,y坐标
y=rand(1,10)*10;
L={'A','A1','A2','A3','B','B1','B2','B3','C','C1'}; %10个标注
plot(x,y,'.'); %画十个点
for ii=1:10
text(x(ii)+0.1,y(ii)+0.1,L{ii}); %利用十个点的坐标添加对应标注
%适当增加一些距离,让文字和点分开会美观一些
end
figure(gcf);
追问
如果想让标注隐藏起来,只有指向散点的时候相应的标注才显示,能实现吗?
追答
能够实现,不过稍微麻烦一些
这里借用一下Data cursor的功能
matlab的figure窗口本身就有个 Data cursor的功能
在窗口的工具栏里面可以找到这个功能
点上这个功能之后,鼠标会变成“十”字样式
在选中数据之后,回有一个浮动小框显示该点数据的坐标信息,如下图所示
现在我们可以利用这个Data Cursor的功能修改框中的内容以显示标注
首先,我们得现一个函数文件将其保存为dcmcallback.m 文件,内容如下:
function [ txt ] = dcmcallback(empt,event_obj,label)
dcm_obj = datacursormode(gcf);
info=getCursorInfo(dcm_obj);
ind = info.DataIndex;
txt=label{ind};
end
然后,我们运行一下的代码
x=rand(1,10)*10;
y=rand(1,10)*10;
L={'A','A1','A2','A3','B','B1','B2','B3','C','C1'};
plot(x,y,'.');figure(gcf);
dcm_obj = datacursormode(gcf);
set(dcm_obj,'DisplayStyle','datatip','SnapToDataVertex','off','Enable','on');
set(dcm_obj,'UpdateFcn',{@dcmcallback,L});
依旧是画10个散点的图,这个时候Data Cursor模式自动打开
鼠标会变成“十”字样式
在选中数据点的时候,浮动框就会显示对应的标注,如下图所示
选择别的点的时候,浮动框会自动根据数据改变显示的标注文字
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先需要建立M文件,编写代码,由于是离散数据,计算保存在一维矩阵中,如下所示:
% calculate the first line
x1 = 0:1:10;
y1 = x1.^2;
由于要绘制散点图,所以不能用plot函数,该函数是绘制连续曲线的!要用stem函数代替,如下所示:
% 绘制离散点会填色,实心
stem(x1,y1,'fill');
当然也可以写成这样子:
% 绘制离散点空心,不填色
stem(x1,y1);
% calculate the first line
x1 = 0:1:10;
y1 = x1.^2;
由于要绘制散点图,所以不能用plot函数,该函数是绘制连续曲线的!要用stem函数代替,如下所示:
% 绘制离散点会填色,实心
stem(x1,y1,'fill');
当然也可以写成这样子:
% 绘制离散点空心,不填色
stem(x1,y1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询