Setting the color of specific cells in a heatmap that contains two types of data

조회 수: 52 (최근 30일)
Hi,
I created the array below in Excel, and it's perfect except that the color bar is ugly and not detailed enough.
So I've been trying to recreate it in MATLAB using the heatmap function and this is what I produced so far.
Which is almost perfect, but I need to set a separate colormap, or a separate condition for the p-value cells. I want only cells with p-value of less than 0.05 to be colored while the rest is just white or black.
Some help with this would be great.
Thanks a lot.
  댓글 수: 2
dpb
dpb 2021년 11월 26일
Attach your code/data to create what you have as a starting point for those here..."help us help you"
Amin Kassab-Bachi
Amin Kassab-Bachi 2021년 11월 26일
Thanks for the comment.
The code
h=heatmap([1:30],["r(FCP)","r(FCP) {\it{p-value}}","{\rho}(FCP)","{\rho}(FCP) {\it{p-value}}","r(IDP)","r(IDP) {\it{p-value}}","{\rho}(IDP)","{\rho}(IDP) {\it{p-value}}"],[r_CP,rpval_CP,rho_CP,pval_CP,r_MNP,rpval_MNP,rho_MNP,pval_MNP]','Colormap',jet);
caxis([-1 1])
The Data is attached. I hope this is helpful.

댓글을 달려면 로그인하십시오.

채택된 답변

DGM
DGM 2021년 11월 26일
You can use NaN to indicate out-of-range data
h = rand(10,10);
h(h<0.1) = NaN;
hh = heatmap(h);
hh.MissingDataLabel = 'h < 0.1';
colormap(jet)
The color of the excluded cells can be set using the MissingDataColor property.
  댓글 수: 3
DGM
DGM 2021년 11월 26일
Maybe something like this:
load CorrelationData.mat
thresh = 0.05;
pvals = [rpval_CP,pval_CP,rpval_MNP,pval_MNP]; % p-val
r = [r_CP,rho_CP,r_MNP,rho_MNP]; % idk what you call these
pvals(pvals<thresh) = NaN;
alldata = reshape([r; pvals],size(pvals,1),[]).'; % interleave and transpose
h=heatmap(1:30, ...
["r(FCP)","r(FCP) {\it{p-value}}","{\rho}(FCP)","{\rho}(FCP) {\it{p-value}}","r(IDP)","r(IDP) {\it{p-value}}","{\rho}(IDP)","{\rho}(IDP) {\it{p-value}}"], ...
alldata,'Colormap',jet);
caxis([-1 1])
colormap(parula)
Amin Kassab-Bachi
Amin Kassab-Bachi 2021년 11월 26일
Brilliant! This definitely works. Many thanks for the help.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Amin Kassab-Bachi
Amin Kassab-Bachi 2021년 11월 27일
I used a custom colormap from here, and the result is very close to what I had in Excel. Great!

카테고리

Help CenterFile Exchange에서 Colormaps에 대해 자세히 알아보기

제품


릴리스

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by