Setting the color of specific cells in a heatmap that contains two types of data
조회 수: 42 (최근 30일)
이전 댓글 표시
Hi,
I created the array below in Excel, and it's perfect except that the color bar is ugly and not detailed enough.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/814184/image.png)
So I've been trying to recreate it in MATLAB using the heatmap function and this is what I produced so far.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/814189/image.png)
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
2021년 11월 26일
Attach your code/data to create what you have as a starting point for those here..."help us help you"
채택된 답변
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
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)
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Colormaps에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!