当前位置: 首页 > news >正文

国内互动网站建设百度指数官网入口

国内互动网站建设,百度指数官网入口,广州建设厅网站,软件开发制作流程图今天给大家带来一款用来绘制有气泡感的网络图的工具函数,绘制效果如下: 花里胡哨的,气泡大小代表流入流出数据量综合,不同颜色的气泡代表属于不同类,两个气泡之间有连线代表有数据流动,连线透明度代表流动数…

今天给大家带来一款用来绘制有气泡感的网络图的工具函数,绘制效果如下:

花里胡哨的,气泡大小代表流入流出数据量综合,不同颜色的气泡代表属于不同类,两个气泡之间有连线代表有数据流动,连线透明度代表流动数据量,连线的颜色是有方向性的渐变色。

依旧完整代码放在文末。


教程部分

0 数据准备

数据需要的关系矩阵需要的是反对称矩阵:

% 随机生成100x100的反对角矩阵
Data=(rand(100)-.5).*(rand(100)>.978);
Data(1:30,:)=Data(1:30,:).*3;
Data=tril(Data)-tril(Data)';
% 生成100x1列向量,分类标签为1-10
Class=(1:10).*ones(10,1);
Class=Class(:);

1 基础绘图

两行代码完事:

% 基础绘图
BD=bubbleDigraph(Data,Class);
BD=BD.draw();

2 气泡大小

可以使用bubblesize函数设置气泡大小范围,例如:

bubblesize([5,40])

3 气泡颜色

使用setBubbleColor函数设置颜色:

BD.setBubbleColor(turbo(10))

4 气泡其他属性

可以使用setBubble函数进行设置,bubblechart图形对象具有的属性均可以修改:

BD.setBubble('MarkerFaceAlpha',.2,'MarkerEdgeColor',[0,0,0])

5 连线配色

直接使用colormap函数即可设置:

colormap(bone)

6 添加节点及类标签

分别使用:

  • NodeName
  • ClassName

俩属性设置两种标签:

for i=1:100nodeName{i}=[num2str(Class(i)),'-',num2str(i)];
end
className={'AAAAA','BBBBB','CCCCC','DDDDD','EEEEE','FFFFF','GGGGG','HHHHH','IIIII','JJJJJ'};BD=bubbleDigraph(Data,Class,'NodeName',nodeName,'ClassName',className);
BD=BD.draw();bubblesize([5,25])

7 标签距离

分别通过:

  • RNode
  • RClass

俩属性设置两种标签距离中心的距离:

BD=bubbleDigraph(Data,Class,'NodeName',nodeName,'ClassName',className,'RClass',1.38,'RNode',1.2);
BD=BD.draw();

8 设置字体

分别使用:

  • setNodeLabel
  • setClassLabel

俩函数设置两种标签的属性:

BD.setNodeLabel('FontName','Cambria','Color',[0,0,.8])
BD.setClassLabel('FontName','Cambria','Color',[.8,0,0],'FontSize',14)


完整代码

classdef bubbleDigraph
% @author : slandarer
% gzh  : slandarer随笔 
% Zhaoxu Liu / slandarer (2023). bubble digraph 
% (https://www.mathworks.com/matlabcentral/fileexchange/125140-bubble-digraph), 
% MATLAB Central File Exchange. 检索来源 2023/2/21.propertiesax,arginList={'ColorOrder','Colormap','ClassName','NodeName','BubbleSize','RClass','RNode'}ClassName   % 类名称NodeName    % 节点名称% 节点配色ColorOrder=[0.6510    0.8078    0.8902;    0.1216    0.4706    0.7059;    0.6980    0.8745    0.54120.2000    0.6275    0.1725;    0.9843    0.6039    0.6000;    0.8902    0.1020    0.10980.9922    0.7490    0.4353;    1.0000    0.4980         0;    0.7922    0.6980    0.83920.4157    0.2392    0.6039;    1.0000    1.0000    0.6000;    0.6941    0.3490    0.1569];% 连线配色Colormap=[1.0000    0.9686    0.9529;    0.9980    0.9454    0.9307;    0.9960    0.9221    0.9084;    0.9939    0.8988    0.88610.9920    0.8750    0.8630;    0.9910    0.8477    0.8336;    0.9900    0.8204    0.8043;    0.9890    0.7930    0.7750;    0.9877    0.7629    0.7502;    0.9857    0.7245    0.7390;    0.9837    0.6860    0.7279;    0.9817    0.6476    0.7168;    0.9793    0.6027    0.7022;    0.9762    0.5470    0.6820;    0.9732    0.4913    0.6617;    0.9701    0.4357    0.6415;    0.9555    0.3815    0.6263;    0.9292    0.3289    0.6162;    0.9028    0.2763    0.6061;    0.8765    0.2237    0.5960;    0.8369    0.1717    0.5763;    0.7894    0.1201    0.5510;    0.7418    0.0684    0.5257;    0.6942    0.0168    0.5004;    0.6429    0.0039    0.4888;    0.5903    0.0039    0.4817;    0.5376    0.0039    0.4746;    0.4850    0.0039    0.4676;    0.4350    0.0030    0.4552;    0.3855    0.0020    0.4420;    0.3359    0.0010    0.4288;    0.2863         0    0.4157];Data,Class          % 有向图及节点分类BubbleSize=[5,25];  % 节点气泡大小范围[min,max]LineWidth=1.5;      % 连接线粗细AlphaLim=[.1,.9];ClassSet,ClassNum,RClass=1.25;RNode=1.08;ColorList;bubbleHdl,nodeLabelHdl,classLabelHdlendmethodsfunction obj=bubbleDigraph(Data,Class,varargin)obj.Data=Data;obj.Class=Class(:);obj.ClassSet=unique(Class);obj.ClassNum=length(obj.ClassSet);for i=1:size(obj.Data,1)obj.NodeName{i}='';endfor i=1:obj.ClassNumobj.ClassName{i}='';end% 获取其他数据disp(char([64 97 117 116 104 111 114 32 58 32,...115 108 97 110 100 97 114 101 114]))for i=1:2:(length(varargin)-1)tid=ismember(obj.arginList,varargin{i});if any(tid)obj.(obj.arginList{tid})=varargin{i+1};endendif obj.ClassNum>size(obj.ColorOrder,1)obj.ColorOrder=[obj.ColorOrder;rand([obj.ClassNum,3])];endendfunction obj=draw(obj)obj.ax=gca;hold on;colormap(obj.Colormap)obj.ax.XLim=[-1.2,1.2];obj.ax.YLim=[-1.2,1.2];obj.ax.XTick=[];obj.ax.YTick=[];obj.ax.XColor='none';obj.ax.YColor='none';obj.ax.PlotBoxAspectRatio=[1,1,1];% 调整初始界面大小fig=obj.ax.Parent;fig.Color=[1,1,1];if max(fig.Position(3:4))<600fig.Position(3:4)=1.8.*fig.Position(3:4);fig.Position(1:2)=fig.Position(1:2)./3;end% 绘制气泡thetaList=linspace(0,2*pi,size(obj.Data,1)+1);thetaList(end)=[];XList=cos(thetaList);YList=sin(thetaList);obj.bubbleHdl=bubblechart(XList,YList,sum(abs(obj.Data)));bubblesize(obj.BubbleSize)obj.ColorList=zeros(size(obj.Data,1),3);for i=1:length(obj.ClassSet)obj.ColorList(obj.Class==obj.ClassSet(i),:)=...repmat(obj.ColorOrder(i,:),sum(obj.Class==obj.ClassSet(i)),1);endobj.bubbleHdl.CData=obj.ColorList;% 绘制连线alphaData=abs(obj.Data);alphaData=alphaData-min(min(alphaData));alphaData=alphaData./max(max(alphaData));alphaData=alphaData.*(obj.AlphaLim(2)-obj.AlphaLim(1))+obj.AlphaLim(1);for i=1:size(obj.Data,1)for j=1:i-1if obj.Data(i,j)~=0bezierX=[cos(thetaList(i)),0,cos(thetaList(j))].*.93;bezierY=[sin(thetaList(i)),0,sin(thetaList(j))].*.93;bezierPnts=bezierCurve([bezierX',bezierY'],100);bezierX=[bezierPnts(:,1);nan];bezierY=[bezierPnts(:,2);nan];fill(bezierX,bezierY,linspace(-1,1,101).*obj.Data(i,j)./abs(obj.Data(i,j)),'EdgeColor','interp',...'LineWidth',obj.LineWidth,'EdgeAlpha',alphaData(i,j))endendend% 绘制节点标签for i=1:size(obj.Data,1)Ti=thetaList(i);rotation=Ti/pi*180;if rotation>90&&rotation<270rotation=rotation+180;obj.nodeLabelHdl(i)=text(cos(Ti).*obj.RNode,sin(Ti).*obj.RNode,obj.NodeName{i},...'Rotation',rotation,'HorizontalAlignment','right','FontSize',9);elseobj.nodeLabelHdl(i)=text(cos(Ti).*obj.RNode,sin(Ti).*obj.RNode,obj.NodeName{i},...'Rotation',rotation,'FontSize',9);endend% 绘制类标签for i=1:obj.ClassNumCTi=mean(thetaList(obj.Class==obj.ClassSet(i)));rotation=CTi/pi*180;if rotation>0&&rotation<180obj.classLabelHdl(i)=text(cos(CTi).*obj.RClass,sin(CTi).*obj.RClass,obj.ClassName{i},'FontSize',14,'FontName','Arial',...'HorizontalAlignment','center','Rotation',-(.5*pi-CTi)./pi.*180);elseobj.classLabelHdl(i)=text(cos(CTi).*obj.RClass,sin(CTi).*obj.RClass,obj.ClassName{i},'FontSize',14,...'HorizontalAlignment','center','Rotation',-(1.5*pi-CTi)./pi.*180);endend% 贝塞尔函数function pnts=bezierCurve(pnts,N)t=linspace(0,1,N);p=size(pnts,1)-1;coe1=factorial(p)./factorial(0:p)./factorial(p:-1:0);coe2=((t).^((0:p)')).*((1-t).^((p:-1:0)'));pnts=(pnts'*(coe1'.*coe2))';endend% 修改气泡颜色function obj=setBubbleColor(obj,ColorList)obj.ColorOrder=ColorList;for i=1:length(obj.ClassSet)obj.ColorList(obj.Class==obj.ClassSet(i),:)=...repmat(obj.ColorOrder(i,:),sum(obj.Class==obj.ClassSet(i)),1);endset(obj.bubbleHdl,'CData',obj.ColorList);end% 修改气泡其他属性function obj=setBubble(obj,varargin)set(obj.bubbleHdl,varargin{:});end% 设置标签function setNodeLabel(obj,varargin)for i=1:size(obj.Data,1)set(obj.nodeLabelHdl(i),varargin{:});endendfunction setClassLabel(obj,varargin)for i=1:obj.ClassNumset(obj.classLabelHdl(i),varargin{:});endendend
% @author : slandarer
% gzh  : slandarer随笔 
% Zhaoxu Liu / slandarer (2023). bubble digraph 
% (https://www.mathworks.com/matlabcentral/fileexchange/125140-bubble-digraph), 
% MATLAB Central File Exchange. 检索来源 2023/2/21.
end

编程不易,希望大家该点赞的点赞,该在看的在看!!

未经允许本代码请勿作商业用途,引用的话可以引用我file exchange上的链接,可使用如下格式:

Zhaoxu Liu / slandarer (2023). bubble digraph (https://www.mathworks.com/matlabcentral/fileexchange/125140-bubble-digraph), MATLAB Central File Exchange. 检索来源 2023/2/21.

若转载请保留以上file exchange链接及本文链接!!!!!


文章转载自:
http://dinncodentition.knnc.cn
http://dinncomitogenic.knnc.cn
http://dinncoscratcher.knnc.cn
http://dinncometeorologic.knnc.cn
http://dinncomicroprism.knnc.cn
http://dinncopuppyish.knnc.cn
http://dinncosweetmouth.knnc.cn
http://dinncovfw.knnc.cn
http://dinncoiconographic.knnc.cn
http://dinncoexempt.knnc.cn
http://dinncoreforestation.knnc.cn
http://dinncomisbegot.knnc.cn
http://dinncopneumonitis.knnc.cn
http://dinncorecognizably.knnc.cn
http://dinncofreyr.knnc.cn
http://dinncomeltable.knnc.cn
http://dinncohaematogenous.knnc.cn
http://dinncograssiness.knnc.cn
http://dinncozilch.knnc.cn
http://dinncojaculation.knnc.cn
http://dinncofreeboard.knnc.cn
http://dinncochaffing.knnc.cn
http://dinncogumball.knnc.cn
http://dinncoenscroll.knnc.cn
http://dinncofluffhead.knnc.cn
http://dinncochuddar.knnc.cn
http://dinncoflako.knnc.cn
http://dinncohazy.knnc.cn
http://dinncodistillage.knnc.cn
http://dinncosanitaria.knnc.cn
http://dinncooversize.knnc.cn
http://dinncohorus.knnc.cn
http://dinncosalesroom.knnc.cn
http://dinncolighthearted.knnc.cn
http://dinncointubatton.knnc.cn
http://dinncoromany.knnc.cn
http://dinncomarcando.knnc.cn
http://dinncooblatory.knnc.cn
http://dinncotzetze.knnc.cn
http://dinncotrickish.knnc.cn
http://dinncomulticentric.knnc.cn
http://dinncoconspiratress.knnc.cn
http://dinncojuly.knnc.cn
http://dinncoerin.knnc.cn
http://dinncopositif.knnc.cn
http://dinncopolymeride.knnc.cn
http://dinncolicensure.knnc.cn
http://dinncooebf.knnc.cn
http://dinncofremd.knnc.cn
http://dinncoosb.knnc.cn
http://dinncostubble.knnc.cn
http://dinncocroesus.knnc.cn
http://dinncocomputerese.knnc.cn
http://dinncorabbet.knnc.cn
http://dinncoinfusion.knnc.cn
http://dinncodiagrid.knnc.cn
http://dinncogazehound.knnc.cn
http://dinncofootrace.knnc.cn
http://dinncostirabout.knnc.cn
http://dinncoincoordinate.knnc.cn
http://dinncoscuttle.knnc.cn
http://dinncobismillah.knnc.cn
http://dinncoforested.knnc.cn
http://dinncopaediatrician.knnc.cn
http://dinncoinfirmation.knnc.cn
http://dinncooutlying.knnc.cn
http://dinncomeadowy.knnc.cn
http://dinncoitalic.knnc.cn
http://dinncosupercontract.knnc.cn
http://dinncodehumanization.knnc.cn
http://dinncomonooxygenase.knnc.cn
http://dinncotaymyr.knnc.cn
http://dinncoweaponry.knnc.cn
http://dinncogimcracky.knnc.cn
http://dinncocyclo.knnc.cn
http://dinncojavabeans.knnc.cn
http://dinncoscotomization.knnc.cn
http://dinncolinkman.knnc.cn
http://dinncohilar.knnc.cn
http://dinncowalkway.knnc.cn
http://dinncogreatest.knnc.cn
http://dinncosnowflake.knnc.cn
http://dinncosequestrotomy.knnc.cn
http://dinncomclntosh.knnc.cn
http://dinncowretch.knnc.cn
http://dinncopsychologically.knnc.cn
http://dinncosco.knnc.cn
http://dinncotrickiness.knnc.cn
http://dinncoexility.knnc.cn
http://dinncoeave.knnc.cn
http://dinncopicofarad.knnc.cn
http://dinncosalinometer.knnc.cn
http://dinncosolicitously.knnc.cn
http://dinncotriptich.knnc.cn
http://dinncobioenvironmental.knnc.cn
http://dinncophycology.knnc.cn
http://dinncotownspeople.knnc.cn
http://dinncobeerpull.knnc.cn
http://dinncocrucible.knnc.cn
http://dinncojaa.knnc.cn
http://www.dinnco.com/news/129302.html

相关文章:

  • 做免费推广的网站有哪些网站优化推广平台
  • 口碑营销5tseo外链优化
  • wordpress5.6.20小辉seo
  • 前端开发和后端开发哪个好天津网站优化
  • 重庆潼南网站建设哪家便宜seo排名赚app是真的吗
  • 企业网站上海 优帮云如何让百度快速收录
  • 恩施网站建设app开发费用一览表
  • 专门做淘宝客网站独立站怎么搭建
  • wordpress 科技主题seo就业前景如何
  • 河北靠谱的网站建设公司2022年关键词排名
  • wordpress跳转https深圳网站建设专业乐云seo
  • 咸阳市住房和城乡建设局网站seo推广平台
  • 在线crm软件seo工作流程
  • 安徽网站搭建seo网站优化服务商
  • 重庆网站运营公司优化大师在哪里
  • 给别人做网站赚钱网络做推广公司
  • 网站根域名是什么百度怎么推广
  • 用自己电脑做服务器 网站网课培训机构排名前十
  • wordpress提交表单插件纵横seo
  • 目前我国政府网站建设情况凌哥seo技术博客
  • 贵州省建设学校网站首页友情链接代码美化
  • 嘉兴h5建站优化资源配置
  • 大一网页设计代码英语seo关键词推广案例
  • 南宁网站建设培训学校百度推广页面投放
  • 深圳网站建设公司地址国际机票搜索量大涨
  • david网站如何做go通路图搜狗seo优化
  • 多说评论插件对网站优化免费的舆情网站app
  • 惊艳的网站怎么做互联网营销推广
  • 苏州建设局网站实名制知识营销成功案例介绍
  • wordpress自媒体新闻模板网站seo推广招聘