matlab中画散点图时怎样在每个点上标记符号?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中画散点图时怎样在每个点上标记符号?相关的知识,希望对你有一定的参考价值。
matlab中画10个点,怎样在每个点上表上相应的符号?分别标注:A,A1,A2,A3,B,B1,B2,B3,C,C1
不用手动标注,因为有很多点....要代码。谢谢~~
1、打开Matlab。
2、首先,获取一组用于作为散点图纵坐标的数据,这里用一个一维数组来作为散点图中的数据,如下图所示,令a=[5,2,1,3]。
3、接着,需要定义散点图的横坐标,给定一组数据作为横坐标,这里依然用一个一维数组,令b=[1,2,3,4]。
4、然后使用scatter函数就可以生成散点图,函数第一个参数为横坐标数据,第二个参数为纵坐标轴数据,因此输入scatter(b,a)。
5、按下回车键,就在Matlab中生成了一个由两组指定数据构成的散点图。
参考技术A 利用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,Lii); %利用十个点的坐标添加对应标注
%适当增加一些距离,让文字和点分开会美观一些
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=labelind;
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模式自动打开
鼠标会变成“十”字样式
在选中数据点的时候,浮动框就会显示对应的标注,如下图所示
选择别的点的时候,浮动框会自动根据数据改变显示的标注文字
% calculate the first line
x1 = 0:1:10;
y1 = x1.^2;
由于要绘制散点图,所以不能用plot函数,该函数是绘制连续曲线的!要用stem函数代替,如下所示:
% 绘制离散点会填色,实心
stem(x1,y1,'fill');
当然也可以写成这样子:
% 绘制离散点空心,不填色
stem(x1,y1);
matlab已知散点图如何拟合
参考技术A 在输入栏分别输入x=,y=
matlab的开始菜单start-toolboxes-cirvefitting-cirvefittingtool,然后点data选择x和y数据,对应你自己的数据就好了,然后点cirvefittingtool界面的fitting按钮,里面好几个可以拟合的函数。可以自动生成曲线,得到系数,分析误差。有问题可以继续追问
以上是关于matlab中画散点图时怎样在每个点上标记符号?的主要内容,如果未能解决你的问题,请参考以下文章