Matlab创建文字云

简介: Matlab创建文字云

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

⛄ 内容介绍

文字云图在科研中比较少见,但是,在生活中,非常常见,看起来高大上,但是制作起来并不是很难。

⛄ 完整代码

%function [pos LL]=WordCloud

clear

close all

%% make Word Cloud

% WordCloud

load('result2.mat');

display('Done!')

data{6,1}='天天';

data{2,1}='Matlab';

data{18,1}='关注';

% data{3,2}=1;

x_std=50;

y_std=50;

Max=7.5;

Min=2;

Iteration=500;


Result.KeyWords=data;

colors = colormap(cool(length(Result.KeyWords)));



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

alpha=0.01; %learning parameters

Gamma=1.5;

Beta=1.3;

Delta=0.5; % the weight of positive electric charge

lambda1=0.8; % how much you want to move words to its centre in general

lambda2=1.2; % how much you want to move the Improtant words to its centre


% BE AWARE THAT WE USE THE PARAMETER ABOVE IN THE FOLLOWING EQUATIONS!

% Q_i=(sizes(IX(ii))/Delta)^(Beta)*((word_length(IX(ii))/max(word_length)))^Gamma;

% Q_j=(sizes(IX(jj))/Delta)^(Beta)*((word_length(IX(jj))/max(word_length)))^Gamma;

% Q=Q+(Q_i*Q_j/sqrt(dot(g,g)));

% Q_g=Q_g+g.*(Q_i*Q_j/(dot(g,g)*norm(g)));

% L(i)=Q+lambda*sum(dot(pos,pos));

% pos=pos-alpha*(PosG)-alpha*lambda*pos;


Beta2=0.85; % linearly or unlinearly in the text fontsize...

%sizes =(freq)^(Beta2) * (Max-Min)+Min; %

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%Binary=Result.Binary;

%key_words=results.unique_words;

key_words=data(:,1);

for i=1:length(key_words)

   key=key_words{i,1};

   key=key(2:end-1); % stripping off the ' '

   key_words{i,1}=key;

   clear i

end


% check the length of each keywords

for i=1:length(key_words)

   word_length(i)=length(key_words{i});

   clear i

end


%freq=sum(Binary,1)./sum(sum(Binary));

%freq=results.freq;

%freq=freq';

freq=cell2mat(data(:,2));

freq=freq';


sizes =(freq.^(Beta2)) * (Max-Min)+Min;

pos=randn(length(key_words),2);

[~,order] = sort(abs(pos(:,1).*pos(:,2)));

pos = pos(order,:);


pos(1,:)=x_std.*pos(1,:);

pos(2,:)=y_std.*pos(2,:);

for i=1:Iteration

L=0;


for ii=1:length(key_words)

   Pos_g=zeros(1,2);

   for jj=1:length(key_words)

       g=pos(ii,:)-pos(jj,:);

       if ii~=jj

       Q_i=(sizes(ii)/Delta)^(Beta)*((word_length(ii)/max(word_length)))^Gamma;

       Q_j=(sizes(jj)/Delta)^(Beta)*((word_length(jj)/max(word_length)))^Gamma;

       L=L+(Q_i*Q_j/(dot(g,g)));

       Pos_g=Pos_g+g.*(Q_i*Q_j/(dot(g,g)*sqrt(dot(g,g))));

       end

   end

   POS_G(ii,:)=Pos_g;

clear ii

end

pos=pos+alpha*POS_G-alpha*(repmat((lambda1+freq'.*lambda2),1,2).*pos);

L=L+1/2*sum((lambda1+freq'.*lambda2).*(sum(pos.^2,2)));

LL(i)=L;


display(sprintf('Iteration %i',i))

display(sprintf('L is now %i',L))

clear L

end

figure(1)

subplot(1,2,1)

plot(pos(:,1),pos(:,2),'b.')

subplot(1,2,2)

plot(LL,'-b')

xlabel('Iteration')

ylabel('Energy (L)')

figure(2)

xlim([-50 50]); % x axis range

ylim([-50 50]); % y axis range

hold on

for i=1:length(key_words)

   text(pos(i,1),pos(i,2),char(data{i}),'FontSize',sizes(i),'Color',colors(i,:),'HorizontalAlignment','center');

end

hold off

axis off

⛄ 运行结果

数据长这样,自己编一个才有乐趣

⛄ 参考文献


❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
Linux 开发工具
18.4 【Linux】systemd-journald.service 简介
18.4 【Linux】systemd-journald.service 简介
350 0
|
Linux
Mac使用sz/rz
Mac使用sz/rz
458 0
|
算法 NoSQL Java
spring cloud gateway网关限流
一般开发高并发系统常见的限流有: 1)限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如 nginx 的 limit_conn 模块,用来限制瞬时并发连接数)、 2)限制时间窗口内的平均速率(如 Guava 的 RateLimiter、nginx 的 limit_req 模块,限制每秒的平均速率); 3)其他还有如限制远程接口调用速率、限制 MQ 的消费速率。 4)另外还可以根据网络连接数、网络流量、CPU 或内存负载等来限流。 本文讨论在gateway集成的实现
|
弹性计算 分布式计算 运维
迟来的EMR Serverless Spark评测报告
本文是一篇关于阿里云EMR Serverless Spark产品评测的文章,作者分享了使用体验和理解。EMR Serverless Spark是阿里云提供的全托管、一站式的Spark数据计算平台,简化了大数据处理流程,让用户专注于数据分析。文章提到了产品的主要优势,如快速启动、弹性伸缩、高资源利用率和低成本。
485 8
|
Linux Go Windows
一文解决 Go 安装和常用环境变量的配置
一文解决 Go 安装和常用环境变量的配置。本文只介绍 Windows 和 Linux 操作系统下的安装方式。
752 1
一文解决 Go 安装和常用环境变量的配置
|
存储 5G 开发工具
文件系统之重新安装系统、如何新增一块盘
文件系统之重新安装系统、如何新增一块盘
|
敏捷开发 弹性计算 架构师
浅谈微服务架构下的数据库设计与实践
在当今快速发展的软件工程领域,微服务架构因其高度的模块化和灵活性而受到广泛欢迎。然而,随之而来的是对数据库设计和管理提出了新的挑战。本文将探讨在微服务架构下,如何有效地设计和实践数据库以支持服务的独立性、数据的一致性和系统的扩展性。我们将从微服务的数据库隔离策略谈起,深入分析数据库的分库分表、事务管理、数据一致性解决方案等关键技术,并通过实例说明如何在实际项目中应用这些原则和技术。本文旨在为软件开发者和架构师提供一份指南,帮助他们在微服务架构的环境下,更好地进行数据库设计和管理。
601 1
|
人工智能 供应链 算法
仅发布3个月 瓴羊One已助力超2500个店铺突破增长
仅发布3个月 瓴羊One已助力超2500个店铺突破增长
308 0
|
JavaScript 前端开发
VUE指令: 什么是v-on指令?它在Vue中的应用场景是什么?
VUE指令: 什么是v-on指令?它在Vue中的应用场景是什么?
335 0
|
机器学习/深度学习 资源调度 算法
深度学习原理篇 第六章:DETR
简要介绍DETR的原理和代码实现。
919 0