欢迎光临散文网 会员登陆 & 注册

“散点热力图”的原始代码分享

2022-06-14 14:40 作者:老张你去哪儿  | 我要投稿


之前做了一期视频分享“散点热力图”绘制方法,没有上传代码 ,在这里分享一下吧。

没有代码分块,差评

%如何绘制二维散点热力图 

%一个散点xyz希望以散点的形式绘制在xy平面上,用不同的颜色表示该位置处的数值

clc;close all;clear all; x=(randperm(10000,10)-20000)/100; 

y=(randperm(50000,10)-20000)/100; z=rand(10,1)*1000; figure plot(x,y,'p')

%二维的

figure 

scatter3(x,y,z,'p')%三维的 

%希望使用散点来表示 %第一步,将系统自带的colorbar给存下来 

% figure 

% colormap(gcf,jet);

%调用你想要的colorbar 通过帮助文档中的colormap可以获取更多颜色条 

% colorbar

%显示颜色条 

% mycolorbar= get(gcf,'Colormap');%

gcf是get current figure的缩写 

% save('D:\Desktop\mycolorbar.mat','mycolorbar');

%把mycolorbar变量保存到桌面上 

%第二步 ,将z变量归一化,并转为0-255之间的整数,生成颜色索引 

znormal=(z-min(z))/(max(z)-min(z));%归一化 

mtcind=uint8(znormal*255)+1;%获得颜色索引,由于mycolorbar的索引是从1开始的,所以要加1 

%第三步,绘图 

load('D:\MATLAB\R2020b\mycolorbar1.mat')%加载颜色 

% set(0,'defaultFigureColor', [1 1 1])                  %修改图形背景颜色的设置 

figure

for i=1:length(x)    plot(x(i),y(i),'P','MarkerSize',12,'MarkerEdgeColor','none','MarkerFaceColor',mycolorbar(mtcind(i),:));    

hold on 

end 

xlim([min(x)-(max(x)-min(x))*0.1,max(x)+(max(x)-min(x))*0.1]);%对坐标轴进行微调 ylim([min(y)-(max(y)-min(y))*0.1,max(y)+(max(y)-min(y))*0.1]); %显示colorbar colormap(gcf,mycolorbar); hc=colorbar; %调整刻度 ytickvalue=roundn(linspace(min(z),max(z),11),-2);%修改colorbar的刻度 set(hc,'YTickLabel',ytickvalue) 

% z2=z/100; 

% ytickvalue=roundn(linspace(min(z2),max(z2),11),-2);

%修改colorbar的刻度 

% set(hc,'YTickLabel',ytickvalue) 

% set(get(hc,'title'),'string','×10^2'); 

 figure 

for i=1:length(x)    

hs=scatter3(x(i),y(i),z(i),128,'P');    set(hs,'MarkerEdgeColor','none','MarkerFaceColor',mycolorbar(mtcind(i),:))    

hold on 

end 

colormap(gcf,mycolorbar);

hc=colorbar; %调整刻度

ytickvalue=roundn(linspace(min(z),max(z),11),-2);%修改colorbar的刻度 set(hc,'YTickLabel',ytickvalue) 

% view(0,90);  

“散点热力图”的原始代码分享的评论 (共 条)

分享到微博请遵守国家法律