- Use imagesc to achieve a similar map. Refer link for more details.
- Use a custom colormap. You can mark the cells to be highlighted at the extreme limit and assign a different color in the your custom map. Note, you can create one using colormapeditor. Have a look at a sample modified code, where I have highlighted the (1,1) cell:
Set colors for specific entries of heat map
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hi all,
I have constructed an heatmap based on a diagonal 50x50 matrix (that I attached to the csv file below).
My code looks as follows:
T1 = readtable('/Users/federiconutarelli/Desktop/Second_work/pivot_own.csv');
T1 = removevars(T1, 'Var1');
T1(1,:) = [];
T1_mat = T1{:,:};
T1_mat(T1_mat==0) = NaN;
ax = gca;
xvalues = {'ACETYLCYSTEINE' 'ACETYLSALICYLIC ACID' 'ACICLOVIR' 'ALPRAZOLAM' 'AMLODIPINE' 'AMOXICILLIN' 'BETAMETHASONE' 'BISOPROLOL' 'BUDESONIDE' 'CARBAMAZEPINE' 'CARBIDOPA + LEVODOPA' 'CETIRIZINE' 'CICLOSPORIN' 'CLINDAMYCIN' 'CLOBETASOL' 'DESMOPRESSIN' 'DICLOFENAC' 'EPINEPHRINE' 'ESTRADIOL' 'FINASTERIDE' 'FLUCONAZOLE' 'FLUOXETINE' 'FUROSEMIDE' 'GOSERELIN' 'HYDROCORTISONE' 'IBUPROFEN' 'INSULIN HUMAN ISOPHANE' 'IRON FERROUS' 'LACTULOSE' 'LEVOTHYROXINE SODIUM' 'LOPERAMIDE' 'MAGNESIUM' 'MESALAZINE' 'METHYLPREDNISOLONE' 'METOPROLOL' 'METRONIDAZOLE' 'NICOTINE' 'OCTREOTIDE' 'OMEPRAZOLE' 'ONDANSETRON' 'PARACETAMOL' 'POTASSIUM' 'RISPERIDONE' 'SALBUTAMOL' 'SPIRONOLACTONE' 'SULFASALAZINE' 'TESTOSTERONE' 'TOBRAMYCIN' 'TRIPTORELIN' 'VALPROIC ACID'};
yvalues = {'ACETYLCYSTEINE' 'ACETYLSALICYLIC ACID' 'ACICLOVIR' 'ALPRAZOLAM' 'AMLODIPINE' 'AMOXICILLIN' 'BETAMETHASONE' 'BISOPROLOL' 'BUDESONIDE' 'CARBAMAZEPINE' 'CARBIDOPA + LEVODOPA' 'CETIRIZINE' 'CICLOSPORIN' 'CLINDAMYCIN' 'CLOBETASOL' 'DESMOPRESSIN' 'DICLOFENAC' 'EPINEPHRINE' 'ESTRADIOL' 'FINASTERIDE' 'FLUCONAZOLE' 'FLUOXETINE' 'FUROSEMIDE' 'GOSERELIN' 'HYDROCORTISONE' 'IBUPROFEN' 'INSULIN HUMAN ISOPHANE' 'IRON FERROUS' 'LACTULOSE' 'LEVOTHYROXINE SODIUM' 'LOPERAMIDE' 'MAGNESIUM' 'MESALAZINE' 'METHYLPREDNISOLONE' 'METOPROLOL' 'METRONIDAZOLE' 'NICOTINE' 'OCTREOTIDE' 'OMEPRAZOLE' 'ONDANSETRON' 'PARACETAMOL' 'POTASSIUM' 'RISPERIDONE' 'SALBUTAMOL' 'SPIRONOLACTONE' 'SULFASALAZINE' 'TESTOSTERONE' 'TOBRAMYCIN' 'TRIPTORELIN' 'VALPROIC ACID'};
h = heatmap(xvalues,yvalues,T1_mat);
h.Title = 'Own Elasticities';
h.XLabel = 'Molecules';
h.YLabel = 'Molecules';
%colormap(flipud(hot))
Now what I would like to do is to color some of the entries on the main diagonal according to shades of red and make a separate legend with a writing "Significant entries colored according to shades of red"
Is it possible to do so?
Thank you,
Federico
0 Kommentare
Antworten (1)
Salman Ahmed
am 14 Okt. 2021
Hi,
From my understanding you wish to highlight specific cells in a heatmap but this is not a feature present currently with heatmap. Some of the workarounds that you can proceed with are:
T1 = readtable('pivot_own.csv');
T1 = removevars(T1, 'Var1');
T1(1,:) = [];
T1_mat = T1{:,:};
T1_mat(T1_mat==0) = NaN;
T1_mat(1,1) = -1.5; % Marking cell at extreme
ax = gca;
xvalues = {'ACETYLCYSTEINE' 'ACETYLSALICYLIC ACID' 'ACICLOVIR' 'ALPRAZOLAM' 'AMLODIPINE' 'AMOXICILLIN' 'BETAMETHASONE' 'BISOPROLOL' 'BUDESONIDE' 'CARBAMAZEPINE' 'CARBIDOPA + LEVODOPA' 'CETIRIZINE' 'CICLOSPORIN' 'CLINDAMYCIN' 'CLOBETASOL' 'DESMOPRESSIN' 'DICLOFENAC' 'EPINEPHRINE' 'ESTRADIOL' 'FINASTERIDE' 'FLUCONAZOLE' 'FLUOXETINE' 'FUROSEMIDE' 'GOSERELIN' 'HYDROCORTISONE' 'IBUPROFEN' 'INSULIN HUMAN ISOPHANE' 'IRON FERROUS' 'LACTULOSE' 'LEVOTHYROXINE SODIUM' 'LOPERAMIDE' 'MAGNESIUM' 'MESALAZINE' 'METHYLPREDNISOLONE' 'METOPROLOL' 'METRONIDAZOLE' 'NICOTINE' 'OCTREOTIDE' 'OMEPRAZOLE' 'ONDANSETRON' 'PARACETAMOL' 'POTASSIUM' 'RISPERIDONE' 'SALBUTAMOL' 'SPIRONOLACTONE' 'SULFASALAZINE' 'TESTOSTERONE' 'TOBRAMYCIN' 'TRIPTORELIN' 'VALPROIC ACID'};
yvalues = {'ACETYLCYSTEINE' 'ACETYLSALICYLIC ACID' 'ACICLOVIR' 'ALPRAZOLAM' 'AMLODIPINE' 'AMOXICILLIN' 'BETAMETHASONE' 'BISOPROLOL' 'BUDESONIDE' 'CARBAMAZEPINE' 'CARBIDOPA + LEVODOPA' 'CETIRIZINE' 'CICLOSPORIN' 'CLINDAMYCIN' 'CLOBETASOL' 'DESMOPRESSIN' 'DICLOFENAC' 'EPINEPHRINE' 'ESTRADIOL' 'FINASTERIDE' 'FLUCONAZOLE' 'FLUOXETINE' 'FUROSEMIDE' 'GOSERELIN' 'HYDROCORTISONE' 'IBUPROFEN' 'INSULIN HUMAN ISOPHANE' 'IRON FERROUS' 'LACTULOSE' 'LEVOTHYROXINE SODIUM' 'LOPERAMIDE' 'MAGNESIUM' 'MESALAZINE' 'METHYLPREDNISOLONE' 'METOPROLOL' 'METRONIDAZOLE' 'NICOTINE' 'OCTREOTIDE' 'OMEPRAZOLE' 'ONDANSETRON' 'PARACETAMOL' 'POTASSIUM' 'RISPERIDONE' 'SALBUTAMOL' 'SPIRONOLACTONE' 'SULFASALAZINE' 'TESTOSTERONE' 'TOBRAMYCIN' 'TRIPTORELIN' 'VALPROIC ACID'};
h = heatmap(xvalues,yvalues,T1_mat);
h.Colormap = CustomColormap; % Add your custom map here.
h.Title = 'Own Elasticities';
h.XLabel = 'Molecules';
h.YLabel = 'Molecules';
Note you can add text to indicate the extreme value indicates highlighted. Hope it helps.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Orange finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!