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


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

%如何绘制二维散点热力图
%一个散点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);

