r - how can I plot one heatmap using two data sets -


all existed answers not working me! these questions making heat maps side side,
to display 2 heatmaps in same pdf side side in r or side-by-side plots ggplot2 or others

i have 2 dfs want plot 10 highest rows (based on average) of df1 , 10 lowest rows (based on average) how force ggplot order x-axis or y axis want in plot? df1 taken previous post, , df2 follows.

    df2<- structure(list(phenelzine = c(-0.0665, -0.077, -0.0168, -0.1448,  0.0571, 0.0032, 0.5728, -0.0322, -0.4072, 0.2572, 0.1139, 0.0462,  -0.0317, 0.1378, -0.1963, 0.5325, 0.0716, 0.522, -0.027, 0.3913 ), denatonium.benzoate = c(0.0386, -0.1908, -0.1477, 0.0331,  -0.0628, 0.0012, -0.0107, 0.0382, -0.2829, -0.1123, 0.3734, 0.094,  -0.0433, 0.1303, -0.0427, 0.0232, 0.0366, 0.0858, 0.0066, -0.2011 ), triamterene = c(-0.0486, 0.3781, -0.0366, 0.2605, -0.1519,  0.5596, 0.0218, -0.2791, 0.3106, 0.0682, -0.0829, 0.1277, -0.1318,  -0.2668, -0.2608, 0.3003, 0.0567, 0.0204, 0.1276, 0.0999), talampicillin = c(0.0064,  0.0735, 0.0215, -0.275, -0.094, 0.2811, 0, -0.033, -0.0238, 0.3376,  -0.3585, 0.1125, 0.0626, 0.0964, 0.0984, -0.1358, 0.0655, -0.2214,  -0.1365, 0.5557), triamcinolone = c(0.0963, 0.2145, 0.1947, -0.0215,  -0.205, 0.0725, 0.1323, -0.0567, 1.0381, 0.0571, 0.0085, -0.0393,  0.1973, 0.0257, -0.0153, 0.0088, 0.07, 0.028, 0.2175, 0.1255),      sulfaphenazole = c(-0.1976, -0.2614, 0.0198, 0.0015, -0.34,      -0.3738, 0.0084, 0.0045, -0.2685, -0.266, 0.0132, 0.0631,      -0.0733, 0.1962, -0.2374, 0.303, -0.0107, -0.0321, 0.0904,      -0.3727), procyclidine = c(0.002, 0.0836, 0.3422, 0.1251,      0.0054, -0.311, -0.1294, -0.1779, 0.0121, -0.1016, -0.1387,      -0.0628, 0.1084, -0.1459, 0.1338, -0.5705, -0.013, 0.0074,      0.0726, -0.1155), pentoxifylline = c(-0.02, 0.0975, 0.1809,      0.0281, -0.1987, -0.1323, -0.0736, 0.0735, 0.1173, 0.0126,      -0.0063, -0.1334, -0.0789, -0.0272, 0.3842, 0.3319, -0.0681,      0.1229, 0.1486, -0.069), suloctidil = c(0.2032, 0.0321, -0.1741,      1.0401, -0.5159, 0.0512, 0.2993, -0.0122, 0.3772, -0.1023,      0.6339, -0.1573, 0.5941, 0.0015, 0.3225, -0.1261, -0.1186,      0.2664, 0.567, 0.0836), etacrynic.acid = c(0.0519, 0.1094,      0.2294, -0.8296, -0.4434, 0.0224, 0.0203, -0.0472, -0.3711,      -0.1684, 0, -0.0868, -0.3012, 0.119, 0.1864, 0.2474, -0.0082,      -0.0043, 0.2668, 0.0415), diphenylpyraline = c(0.1109, -0.248,      -0.0324, -0.0795, 0.0242, 0.1384, 0.0019, -0.0047, -0.112,      0.0233, 0.1739, 0.0804, 0.031, -0.1402, 0.0911, -0.0642,      0.122, 0.3183, -0.0321, -0.0315), carbenoxolone = c(0.0572,      0.0067, -0.0867, 0.0847, -0.0336, 0.1749, -0.0717, 0.0774,      -0.1392, -0.125, -0.2171, 0.0383, 0.2226, -0.1613, 0.4069,      -0.2584, -0.0611, -0.1726, -0.0979, -0.2289), arecoline = c(0.1024,      0.2231, -0.0456, -0.0569, 0.2038, 0.0168, 0.1495, 0.3623,      -0.2502, -0.1069, 0, 0.0973, -0.1981, 0.1, -0.3438, 0.395,      -0.1338, -0.3616, -0.3076, 0.0234), chenodeoxycholic.acid = c(0.0145,      -0.1226, 0.1928, -0.0623, 0.0172, -0.2535, 0.1912, -0.0082,      -0.2637, -0.0639, 0.2127, -0.06, 0.0581, 0.1153, 0.2101,      0.0434, 0.0259, -0.096, -0.0808, -0.0044), torasemide = c(0.0225,      0.1195, 0.1161, 0.0096, 0.2128, 0.2855, -0.1437, -0.2137,      -0.0714, 0.1109, 0.0229, 0.1165, 0.0074, 0.1891, -0.0789,      0.251, 0.0199, -0.3215, 0.0067, -0.143), troglitazone = c(0.1074,      0.1187, 3e-04, 0.1574, 0.3559, 0.0714, -0.1121, -0.1182,      0.1418, 0.196, -0.0248, 0.0437, 0.1814, -0.0927, 0.0938,      -0.0031, -0.0225, 0.0395, 0.0047, 0.14), mepenzolate.bromide = c(-0.1039,      0.0088, 0.2329, 0.0061, 0.0588, -0.0396, -0.1546, 0.1601,      -0.1256, 0.0615, -0.0537, -0.0209, 0.1138, -0.0518, 0.2233,      -0.0858, 0.0073, -0.1966, -0.0476, 0.0741), megestrol = c(0.0256,      0.0967, 0.0533, 0.215, 0.1449, 0.3936, 0.1269, -0.0805, 0.3126,      -0.3387, -0.1375, 0.0675, 0.1531, -0.273, 0.2687, 0.0247,      0.1113, -0.0559, 0.1653, 0.0195), dexpropranolol = c(0.0659,      0.2253, 0.1768, 0.0608, -0.1233, -0.202, -0.1021, -0.0619,      -0.2544, 0.1086, -0.2336, 0.0402, 0.018, -0.4825, -0.1842,      0.6686, 0, -0.0873, -0.0747, 0.2841), nipecotic.acid = c(0.0025,      0.0781, 0.0258, 0.0825, 0.1123, -0.1044, 0.1769, 0.1758,      -0.004, 0.0046, -0.2597, 0.0692, -0.0928, -0.089, -0.0945,      -0.0356, -0.1181, 0.0165, 0.0888, 0.1253), omeprazole = c(0.0172,      0.0859, 0.1016, 0.279, 0.0255, 0.162, 0.0601, -0.0358, 0.1944,      -0.1295, -0.1445, 0.0769, -0.0047, -0.0976, 0.1411, -0.0432,      0.1151, -0.0375, 0.0071, 0.203), etanidazole = c(-0.0776,      -0.0253, 0.1407, 0.2498, -0.0931, 0.0734, -0.0602, -0.1292,      0.2937, 0.052, 0.1856, 0.1195, 0.0524, 0.0944, -0.3275, -0.0198,      0.0598, -0.0356, 0.0854, 0.2093), acenocoumarol = c(0.1362,      0.0303, -0.255, 0.0841, 0.2195, -0.0732, -0.0129, 0.0101,      -0.0939, -0.023, 0.0063, 0.0776, 0.0397, -0.1646, -0.5415,      -0.0177, -0.0949, 0.1158, -0.0037, 0.1216), dacarbazine = c(0.2137,      -0.1382, 0.2363, 0.0733, 0.4311, 0.1098, 0.0351, 0.0831,      -0.3778, 0.3351, 0.058, 0.1463, 0.0753, 0.0238, -0.0843,      0.445, 0.0869, -0.2161, 0.0553, -0.0549), diphemanil.metilsulfate = c(0.0196,      -0.173, 0.0046, 0.0132, -0.0958, -0.0733, 0.0207, 0.0095,      -0.3009, -0.1452, 0.0215, 0.1302, 0.0312, -0.0731, 0.1877,      0.3668, 0.021, -0.0142, -0.3134, -0.0766), meprylcaine = c(-0.0212,      0.0024, 0.0805, -0.1316, 0.0713, -0.1855, 0.2942, 0.0096,      -0.1094, 0.0264, 0.0136, -0.0553, -0.0275, 0, 0.0804, 0.0057,      0.075, 0.338, -0.1472, -0.0797), mevalolactone = c(0.2585,      -0.1235, 0.0609, -0.0379, 0.275, -0.2666, 0.2689, 0.1559,      0.0218, 0.0945, -0.0604, 0.0515, -0.0608, 0.1759, -0.2929,      0.2396, 0.0191, -0.1368, -0.0224, 0.0181), buspirone = c(-0.0704,      -0.1544, -0.0646, 0.0569, -0.1585, 0.4518, -0.252, 0.1089,      -0.1774, 0.0844, -0.1922, -0.0342, 0.0871, -0.2897, 0.4065,      0.2244, 0.1293, -0.1597, -0.0436, 0.1639), sulfafurazole = c(0.2313,      -0.0074, -0.0496, -0.5903, -0.0579, 0.2431, 0.0645, 0.0299,      -0.0586, 0.0226, 0.0898, 0.0175, 0.139, 0.0856, -0.1143,      0.1475, 0.0073, -0.0925, -0.0804, -0.0076), ciclopirox = c(-0.202,      -0.298, 0.2809, -0.7159, -0.7991, 0.0232, -0.0257, -0.0454,      0.8951, 0.6343, 0.4207, -0.2504, -0.4547, 0.2399, 0.0774,      -0.1596, -0.1781, 0.3225, -0.0511, -0.0057)), .names = c("phenelzine",  "denatonium.benzoate", "triamterene", "talampicillin", "triamcinolone",  "sulfaphenazole", "procyclidine", "pentoxifylline", "suloctidil",  "etacrynic.acid", "diphenylpyraline", "carbenoxolone", "arecoline",  "chenodeoxycholic.acid", "torasemide", "troglitazone", "mepenzolate.bromide",  "megestrol", "dexpropranolol", "nipecotic.acid", "omeprazole",  "etanidazole", "acenocoumarol", "dacarbazine", "diphemanil.metilsulfate",  "meprylcaine", "mevalolactone", "buspirone", "sulfafurazole",  "ciclopirox"), row.names = c("202659_at", "203110_at", "204213_at",  "204279_at", "204301_at", "205049_s_at", "205242_at", "205267_at",  "205476_at", "205891_at", "206641_at", "207076_s_at", "209040_s_at",  "209138_x_at", "209208_at", "209374_s_at", "209397_at", "209569_x_at",  "209970_x_at", "210885_s_at"), class = "data.frame") 

from df1, in previous post, plot heatmap of higher 0.02 (lets 10 of them), df2, want plot lower 0.0 threshold put both images in 1 figure

what plot df1 , df2 follows

for df1 can taken link above , can follows

t<- data.frame(sort(rowmeans(df))) rn <- rownames(t[t[,1] > 0.02,, drop=false]) tab <- melt(transform(df, rowname = row.names(df))) tab1 <-  subset(tab, rowname %in% rownames(t)[t > 0.02]) tab1$rowname <- factor(tab1$rowname, levels=rn) ggplot(tab1,aes(x = rowname, y = variable, fill = value)) +    geom_tile() +    scale_fill_gradient2(high="black",mid="white",low="darkblue") +   theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) 

to plot df2 follows

t2<- data.frame(sort(rowmeans(df2)))     rn2 <- rownames(t2[t2[,1] < 0.0,, drop=false])     tabm <- melt(transform(df2, rowname = row.names(df2)))     tab2 <-  subset(tabm, rowname %in% rownames(t2)[t2 < 0.0])     tab2$rowname <- factor(tab2$rowname, levels=rn2)     ggplot(tab2,aes(x = rowname, y = variable, fill = value)) +        geom_tile() +        scale_fill_gradient2(high="black",mid="white",low="darkblue") +       theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) 

what want plot heatmap of both in 1 image (one part df1 , other part df2)

here think asking for. df dataframe earlier question , df2 question.

#calculate mean of each row df$avg <- apply(df, 1, mean) df2$avg <- apply(df2, 1, mean)  #add identifier dataframe preserve source id after rbind df$id <- 1 df2$id <- 2  #merge datasets df3 <- rbind(df, df2)  #add rownames field preservation after melt df3$row <- rownames(df3)  #select rows of interest goodrows <- (df3$id == 1 & df3$avg >= 0.02) | (df3$id == 2 & df3$avg <= 0)  #melt dataframe retaining rows of interest df3m <- melt(df3[goodrows, ], id.vars = c('id', 'avg', 'row'))  #make new row label combines "row" , id df3m$lbl <- paste(df3m$row, "_id_", df3m$id, sep = "")  #plot ggplot(df3m,aes(x = variable, y = lbl, fill = value)) +        geom_tile() +        scale_fill_gradient2(high="yellow",mid="gray",low="darkblue") +       theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) 

Comments

Popular posts from this blog

google chrome - Developer tools - How to inspect the elements which are added momentarily (by JQuery)? -

angularjs - Showing an empty as first option in select tag -

php - Cloud9 cloud IDE and CakePHP -