paper_quicker 2022-07-04 20:23 采纳率: 100%
浏览 119
已结题

matlab做的热力图为什么不是顺滑的过渡

问题遇到的现象和发生背景

matlab做热力图为什么是色块,而不是顺滑的过度

问题相关代码,请勿粘贴截图

clear; clc; close all

[,,raw ] = xlsread('体育设施热力图数据.xlsx');

mat = cell2mat(raw(2:end, 2:end));
imagesc(mat); %生成热图
c=colorbar;
colormap hot;
ylabel(c,'Population Heat');
caxis([1 11]) %更改右侧颜色条最大最小值

xticks(1:13) %x轴分成13等分
xticklabels(raw(1,2:end))
yticks(1:15)
yticklabels(raw(2:end,1))

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • Wayne_Fine 优质创作者: 嵌入式与硬件开发技术领域 2022-07-04 20:57
    关注

    你的数据量有多大?截图发一下看看,可能是数据量较少的原因,预期效果应该用了插值;
    而不仅仅是用的imagesc,更像是颜色插值后的伪彩图,建议尝试pcolor()

    clc,clear,close all;
    data=round(rand(1,900)*100);
    data=reshape(data,10,90);
    h=pcolor(data);
    h.FaceColor = 'interp';
    set(h,'LineStyle','none');
    
    clc,clear,close all;
    data=round(rand(1,900)*100);
    data=reshape(data,10,90);
    h=pcolor(data);
    h.FaceColor = 'interp';
    colormap jet;
    colorbar; 
    set(h,'LineStyle','none');
    

    效果:

    img


    img

    参考文档:
    https://ww2.mathworks.cn/help/matlab/ref/pcolor.html?s_tid=doc_ta

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月13日
  • 已采纳回答 7月5日
  • 创建了问题 7月4日