matlab 泡泡图,使用matlab绘制2维、3维气泡图

在学习模糊c均值聚类时,突然想到能否将每个样本对所属簇的奴属度(C)用气泡图的形式表示出来,这样就可以在一张图上同时获得分类与奴属度(C)两类信息。在matlab中没有绘制气泡图的专用函数,不过可以通过手动设置参数,来最终达到气泡图的效果。以下是实现代码。

二维气泡图的绘制

% 这个脚本用来对模糊c均值聚类生成二维气泡图

clc

clear

%% 获得模糊c均值聚类的结果数据

load fcmdata.dat

[centers,U] = fcm(fcmdata,2); % 返回聚类中心信息以及每个数据点奴属与各聚类中心的值

index1 = find(U(1,:)==max(U));% 使用find()函数找到属于第一个聚类中心的元素序号

index2 = find(U(2,:)==max(U));% 获得属于第二个聚类中心的元素序号

%% 绘制二维bubble图

figure

weight = normalize(max(U),'range')*600; % 一种扩大一组数据之间差距的方法,否则气泡效果不明显

weight(weight==0)=(1/20)*mean(weight);% 粗略将0值转化为1/20的均值(这是估计出来的)

% 绘制第一个簇的气泡图

for i=1:length(index1)

scatter(fcmdata(index1(i),1),fcmdata(index1(i),2),weight(index1(i)),...

'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','r',...

'MarkerFaceAlpha',0.3);

hold on % 别忘了这句,要不然总是一个点

end

% 绘制第二个簇的气泡图

for i=1:length(index2)

scatter(fcmdata(index2(i),1),fcmdata(index2(i),2),weight(index2(i)),...

'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','b',...

'MarkerFaceAlpha',0.3);

hold on % 别忘了这句,要不然总是一个点

end

plot(centers(:,1),centers(:,2),'xk','markersize',10,'linewidth',3);

hold off

最终绘制效果如下图所示:

2faf0c52c9fe39b3b58143cc7998e33d.png

气泡的大小代表每个样本的奴属度(C)但可以看出大部分气泡大小差距不大,只有在两分类交界处出现奴属度较小的气泡,这是符合实施规律的。事实上,图中气泡的大小差距是经过放大处理的,若不经历此步操作,气泡的大小是差不多的。

三维气泡图的绘制

原理同二维气泡图一样,直接上代码。

% 使用这个脚本创建三维气泡图

clc

clear

%% 数据集的创建

rng default; % For reproducibility

X = [randn(20,3)*0.75+ones(20,3);randn(20,3)*0.5-ones(20,3)]; % 创建20个样本的二分类数据集

%% 进行模糊c均值聚类

Numclust = 2;

[centers,U] = fcm(X,Numclust);

index1 = find(U(1,:)==max(U)); % 获取簇1的标号

index2 = find(U(2,:)==max(U)); % 获取簇2的标号

weight = normalize(max(U),'range')*800; % 获取气泡权重

weight(weight==0) = (1/20)*mean(weight); % 调好看一点

%% 绘制3维气泡图

figure

for i = 1:length(index1)

scatter3(X(index1(i),1),X(index1(i),2),X(index1(i),3),weight(index1(i)),...

'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','r',...

'MarkerFaceAlpha',0.3);

hold on

end

for i = 1:length(index2)

scatter3(X(index2(i),1),X(index2(i),2),X(index2(i),3),weight(index2(i)),...

'MarkerEdgeColor','k','MarkerEdgeAlpha',0,'MarkerFaceColor','b',...

'MarkerFaceAlpha',0.3);

hold on

end

plot3(centers(:,1),centers(:,2),centers(:,3),'xk','markersize',10,'linewidth',3);

hold off

最终绘制效果图如下图所示:

07c00d904bcdb0376b98dbec83608b78.png

后续

冷静下来想了想,将c值以气泡图形式表示出来似乎有点画蛇添足,不过作为日常编程练习还是有帮助的。matlab入门小白,欢迎大家多多指教!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php openssl加密数据长度,PHP使用openssl解密数据(用mcrypt加密)

所以我不需要评论3DES不安全和ECB不好等等,我们知道,这就是为什么我们试图解密,以有一个更好的加密算法。我在下面提供了使用mcrypt进行加密的代码,以及我们试图使用的1行代码(openssl)对其进行解密。它总是返回false,我们想知道为什么。我开始怀疑问题是mcrypt库使用了8字节的…

matlab用for编写乘法表,实验二 Matlab程序设计基本方法1

实验二Matlab程序设计基本方法覃照乘自092 电气工程学院一、实验目的:1、熟悉MATLAB 程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉跨空间变量传递和赋值二、实验基本知识:◆for循环结构语法&#…

用vscode可以开发php,【编程开发工具】vscode能够编写php吗

Visual Studio Code一个轻量且壮大的代码编辑器,支撑Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支撑,而且具有雄厚的插件生态系统,可通过装置插件来支撑C、C#、Python、PHP等其他言语。Visual Studio Code设置php…

ant混淆编译java web,Android中使用ant混淆编译

搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法。下面开始:1.拿一个普通项目来说,首先为它加上ant编译功能。android update project --name project_name -t 3 -p D:/temp/project_name此时会在项目根目录…

matlab漂亮图表,漂亮,美观的图表之Matlab强势回归~~~~走你8

今天来画3D plot% Load the dataload latticeExamplexx x(:);yy y(:);zz z(:);% locate the non-zero pointsa find(T~0);% plot the non-zero points using a scatter plot% use the values of T to represent both color and size of symbolsscatter3(xx(a),yy(a),zz(a),…

php打开文件读写函数,php中常用文件操作读写函数介绍

本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists 检查文件或目录是否存在 file_put_contents 写入文件 fwrite 写入文件用 PHP 内置函数 file_exists 可以检查某个文件或…

centos7卸载mysql数据库,CentOS7 安装卸载MySQL

[rootlocalhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm安装MySQL服务器rootlocalhost ~]# yum -y install mysql-community-server2. MySQL数据库设置启动MySQL[rootlocalhost ~]# systemctl start mysqld.service查看MySQL运行…

php v9 如何获取超级管理员权限,phpcms v9 增加后台管理员其他权限角色可以查看信息不能修改信息...

phpcms v9 增加后台管理员其他角色可以查看信息不能修改信息phpcms\modules\content\templates\content_list.tpl.php这里面判断是不是管理员角色,如果不是原来的编辑链接改为查看链接,php代码如下if ($_SESSION[roleid]!1){?>查看详情}else{?>查…

用matlab绘制外部导入数据图像,matlab 外部数据导入方法详解(3)

● load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。● load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。● load -ascii filena…

matlab储备池算法,储备池计算概述.pdf

第 期 电 子 学 报10 Vol.39 No.10年 月2011 10 &a…

matlab课程设计图像处理,MATLAB课程设计--GUI图像处理

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [sfilename ,sfilepath]uiputfile({*.jpg;*.bmp;*.tif;*.*},保存图像文件,untitled.jpg);if ~isequal([sfilename,sfilepath],[0,0]) sfil…

php ../ 和 ./ 区别,php $_POST 与 php://input的区别分析

$_POST 与php://input可以取到值,$HTTP_RAW_POST_DATA 为空$_POST 以关联数组方式组织提交的数据,并对此进行编码处理,如urldecode,甚至编码转换php://input 也可以实现此这个功能可以获得POST的原始数据。代码实例echo file_ge…

php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持久的(保持活动)连接吗?...

一年后,我问了这个问题,我似乎找到了答案。(gdb) bt#0 close () at ../sysdeps/unix/syscall-template.S:84#1 0x0000000000a40dff in fcgi_close (req0x1dae3c0, force0, destroy1) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1311#2 0x000…

php电影推荐算法,每周一道算法题013:电影推荐

问题:A、B、C三位用户都喜欢看电影,他们给自己所喜欢的电影类型打了如下的分:ABC喜剧片342动作片435生活片451恐怖片113爱情片451B用户喜欢的电影类型是应该推荐给A还是C?思路:用K最近邻(k-nearest neighbours&#xf…

100转换成二进制 java,一段简单的java代码,十进制转二进制

一段简单的java代码,十进制转二进制mip版 关注:188 答案:5 悬赏:40解决时间 2021-01-23 23:14已解决2021-01-23 05:43代码如下,希望可以帮我说明白点这段代码。factorOfTwo到底是指的什么?这段代码是如何运行的?多谢int number…

有向图算法 PHP,科学网—一种可用于脑神经网络分析的有向图分解算法 第六稿 - 谢勤的博文...

摘要:文献[1-9]提出了血液循环在大脑处理信息的过程中具有时序控制作用,并用量化模型结合结构风险最小化相关理论说明时序控制作用的意义。文献[10-24]汇总介绍量化模型中的一些细节。本文介绍我们开发的一个算法,这一算法实现将一个有向网络…

oracle中substrb用法,oracle中substr和instr的用法

1、substr(string string, int a, int b)参数1:string 要处理的字符串参数2:a 截取字符串的开始位置(起始位置是1,也可以是0)参数3:b 截取的字符串的长度(是字符串的结束位置)例如:substr("ABCDEFG", 0); //返回:ABCDEF…

oracle 索引回表,oracle 索引简单总结

建立索引时先进行排序,逻辑上分为Root(根块),Branch(茎块),leaf(叶子块)。leaf中存在索引列的值、长度、和所在rowid,茎块存了指向具体茎块的指针,root块同理。这是逻辑上的划分实际上根据表中数据量的多少可能会存在多…

oracle查效能,【DataGuard】Oracle 11g物理Active Data Guard实时查询(Real-time query)特性...

在Oracle 11g以前版本中的的Data Guard物理备用数据库,可以以只读的方式打开数据库,但此时Media Recovery利用日志进行数据同步的过程就停止了,如果物理备用数据库处于恢复的过程中数据库就不能打开查询,也就是说日志应用和只读打…

oracle sequence last_number,关于oracle序列的LAST_NUMBER

这是正常的,是的.从documentation for the all_sequences data dictionary view开始,last_number是:Last sequence number written to disk. If a sequence uses caching, the number written to disk is the last number placed in the sequence cache. This numbe…