在之前的文章中,分享过Matlab折线图的绘制模板:
柱状图的绘制模板:
三维柱状图的绘制模板:
散点图的绘制模板:
三维散点图的绘制模板:
这次再来分享一下热图的绘制模板。
先来看一下成品效果:
特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进行科研绘图的门槛,只需按照模板格式添加相应内容,即可得到满足大部分期刊以及学位论文格式要求的数据插图。如果觉得有用可以分享给你的朋友。
模板中最关键的部分内容:
1. 数据准备
此部分主要是读取数据,定义矩阵。
% 读取数据
rho=[1.00 0.16 0.29 0.05 0.34 0.41 0.29 0.22 0.25 0.56
0.16 1.00 0.44 0.29 0.13 0.12 0.19 0.01 0.26 0.07
0.29 0.44 1.00 0.08 0.32 0.35 0.36 0.20 0.02 0.27
0.05 0.29 0.08 1.00 0.21 0.20 0.26 0.24 0.20 0.06
0.34 0.13 0.32 0.21 1.00 0.86 0.45 0.61 0.06 0.43
0.41 0.12 0.35 0.20 0.86 1.00 0.54 0.65 0.17 0.54
0.29 0.19 0.36 0.26 0.45 0.54 1.00 0.37 0.14 0.26
0.22 0.01 0.20 0.24 0.61 0.65 0.37 1.00 0.03 0.30
0.25 0.26 0.02 0.20 0.06 0.17 0.14 0.03 1.00 0.52
0.56 0.07 0.27 0.06 0.43 0.54 0.26 0.30 0.52 1.00];
2. 颜色定义
配色的合适与否影响着他人对内容第一印象。
但颜色搭配比较考验个人审美,需要多加尝试。
这里用之前分享的addcolorplus工具的渐变色:
%% 颜色定义
map = addcolorplus(300);
3. 热图绘制
使用‘heatmap’命令,绘制初始的热图。
string_name={'S1','S2','S3','S4','S5','S6','S7','S8','S9','S10'};
xvalues = string_name;
yvalues = string_name;
h = heatmap(xvalues,yvalues, rho,'FontSize',8, 'FontName','Helvetica');
h.Title = 'Correlation Coefficient';
h.XLabel = 'XLabel';
h.YLabel = 'YLabel';
值得一提的是,heatmap与之前分享的折线图、柱状图等绘制方法有所不同,主要体现在标题、坐标轴标题、字体字号等属性的设置方法上。
考虑到heatmap在坐标区美化方面灵活性不足的问题,在下一篇文章将会分享一种灵活的热图绘制方法。
4. 细节优化
为了插图的美观,使用colormap命令赋上之前选择好的颜色,并修改背景颜色。
% 赋色
colormap(map)
% 背景颜色
set(gcf,'Color',[1 1 1])
设置完毕后,按照所需分辨率、格式输出图片。
%% 图片输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figWfigH]);
fileout = 'test';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
也可以尝试其它配色:
以上。
Matlab热图绘制代码