मेरे पास एक हीटमैप है जो अधिक से अधिक जटिल हो रहा है। पिघल डेटा का एक उदाहरण:ggplot2: अधिक जटिल पहलू
head(df2)
Class Subclass Family variable value
1 A chemosensory family_1005117 caenorhabditis_elegans 10
2 A chemosensory family_1011230 caenorhabditis_elegans 4
3 A chemosensory family_1022539 caenorhabditis_elegans 10
4 A other family_1025293 caenorhabditis_elegans NA
5 A chemosensory family_1031345 caenorhabditis_elegans 10
6 A chemosensory family_1033309 caenorhabditis_elegans 10
tail(df2)
Class Subclass Family variable value
6496 C class c family_455391 trichuris_muris 1
6497 C class c family_812893 trichuris_muris NA
6498 F class f family_225491 trichuris_muris 1
6499 F class f family_236822 trichuris_muris 1
6500 F class f family_276074 trichuris_muris 1
6501 F class f family_768194 trichuris_muris NA
ggplot2 और geom_tile का उपयोग करना, मैं डेटा की एक सुंदर हीटमैप का उत्पादन करने में सक्षम था। मैं कोड पर गर्व है (इस आर में पहला अनुभव है), तो यह नीचे पोस्ट किया है:
df2[df2 == 0] <- NA
df2[df2 > 11] <- 10
df2.t <- data.table(df2)
df2.t[, clade := ifelse(variable %in% c("pristionchus_pacificus", "caenorhabditis_elegans", "ancylostoma_ceylanicum", "necator_americanus", "nippostrongylus_brasiliensis", "angiostrongylus_costaricensis", "dictyocaulus_viviparus", "haemonchus_contortus"), "Clade V",
ifelse(variable %in% c("meloidogyne_hapla","panagrellus_redivivus", "rhabditophanes_kr3021", "strongyloides_ratti"), "Clade IV",
ifelse(variable %in% c("toxocara_canis", "dracunculus_medinensis", "loa_loa", "onchocerca_volvulus", "ascaris_suum", "brugia_malayi", "litomosoides_sigmodontis", "syphacia_muris", "thelazia_callipaeda"), "Clade III",
ifelse(variable %in% c("romanomermis_culicivorax", "trichinella_spiralis", "trichuris_muris"), "Clade I",
ifelse(variable %in% c("echinococcus_multilocularis", "hymenolepis_microstoma", "mesocestoides_corti", "taenia_solium", "schistocephalus_solidus"), "Cestoda",
ifelse(variable %in% c("clonorchis_sinensis", "fasciola_hepatica", "schistosoma_japonicum", "schistosoma_mansoni"), "Trematoda", NA))))))]
df2.t$clade <- factor(df2.t$clade, levels = c("Clade I", "Clade III", "Clade IV", "Clade V", "Cestoda", "Trematoda"))
plot2 <- ggplot(df2.t, aes(variable, Family))
tile2 <- plot2 + geom_tile(aes(fill = value)) + facet_grid(Class ~ clade, scales = "free", space = "free")
tile2 <- tile2 + scale_x_discrete(expand = c(0,0)) + scale_y_discrete(expand = c(0,0))
tile2 <- tile2 + theme(axis.text.y = element_blank(), axis.ticks.y = element_blank(), legend.position = "right", axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.55), axis.text.y = element_text(size = rel(0.35)), panel.border = element_rect(fill=NA,color="grey", size=0.5, linetype="solid"))
tile2 <- tile2 + xlab(NULL)
tile2 <- tile2 + scale_fill_gradientn(breaks = c(1,2,3,4,5,6,7,8,9,10),labels = c("1", "2", "3", "4", "5", "6", "7", "8", "9", ">10"), limits = c(1, 10), colours = palette(11), na.value = "white", name = "Members")'
जैसा कि आप देख सकते हैं, वहाँ है काफी पुस्तिका शामिल पुनर्व्यवस्था का एक सा है, अन्यथा कोड बहुत सरल है । आप देख सकते हैं कि जानकारी की एक पूरी स्तंभ, "उपवर्ग" का उपयोग नहीं कर रहा है
हालांकि,: यहाँ छवि उत्पादन है। असल में, प्रत्येक सबक्लास एक कक्षा के भीतर फिट बैठता है। यह सही होगा अगर मैं पहले से प्रदर्शित कक्षा पहलू के भीतर इन सबक्लास को पहचाने में सक्षम था। जहां तक मुझे पता है, यह असंभव है। सटीक होने के लिए, केवल कक्षा ए में अलग-अलग सबक्लास हैं। अन्य वर्गों में बस उनके वर्ग का नाम प्रतिबिंबित होता है (एफ = कक्षा एफ)। क्या इस हीटमैप को व्यवस्थित करने का कोई और तरीका है ताकि मैं सभी प्रासंगिक जानकारी प्रदर्शित कर सकूं? गायब उप-वर्गों में कुछ सबसे महत्वपूर्ण डेटा शामिल हैं और डेटा से संदर्भों को चित्रित करने के लिए सबसे आवश्यक होंगे।
क्लास के बजाए सबक्लेसेस को देखने के लिए एक वैकल्पिक दृष्टिकोण होगा, मैन्युअल रूप से उन्हें पुन: व्यवस्थित करें ताकि कक्षाएं एक साथ क्लस्टर हो जाएं और फिर प्रत्येक कक्षा को निर्धारित करने के लिए उनके चारों ओर किसी प्रकार का बॉक्स खींचे। मुझे नहीं पता कि यह कैसे किया जाएगा।
कोई भी मदद बहुत उपयोगी होगी। अगर आपको कोई अतिरिक्त जानकारी चाहिए तो कृपया मुझे बताएं।
आप कहाँ है 'facet_grid (कक्षा ~ क्लेड,', यह 'facet_grid लिए (कक्षा + उपवर्ग ~ क्लेड, बदल' – Gregor
हालांकि, लेबल के आदेश देने के लिए, तो आप शायद 'चाहते उपवर्ग + कक्षा' – Gregor
यह करने का एक तरीका है, धन्यवाद। यह बिल्कुल सही नहीं है कि मैंने कल्पना की है (नेस्टेड पहलुओं), क्योंकि यह इसे सबक्लास में तोड़ देता है और फिर कक्षा लेबल जोड़ता है। मुझे लगता है कि यह उतना सुंदर नहीं है जितना मैं चाहता हूं जैसे, लेकिन हो सकता है कि यह उतना अच्छा हो जितना हो जाता है। आपके इनपुट के लिए धन्यवाद, @ ग्रेगोर – Nic