2015-08-11 17 views
6

में लेबल्स घुमाएं यहां एक तार आरेख बनाने के लिए circlize पैकेज से कुछ कोड है। अभी सर्कल सर्कल के किनारे के समानांतर हैं। क्या सर्कल के लंबवत होने के लिए लेबल 90 डिग्री लेना संभव है?एक तारडियोग्राम (आर circlize)

library(circlize) 
set.seed(999) 
mat = matrix(sample(18, 18), 3, 6) 
rownames(mat) = paste0("Start", 1:3) 
colnames(mat) = paste0("End", 1:6) 
chordDiagrm(mat) 

चित्र में नीचे मैं मैन्युअल रूप से कुछ लेबल डाला दिखाने के लिए कि मैं क्या पूरा करने के लिए (End5, End6, End7) की उम्मीद है। धन्यवाद।

enter image description here

उत्तर

5

अपने उदाहरण आंकड़ों के आधार पर यहां एक तरह से यह करना है:

grid.col <- setNames(rainbow(length(unlist(dimnames(mat)))), union(rownames(mat), colnames(mat))) 
par(mar = c(0, 0, 0, 0), mfrow = c(1, 2)) 

# original image 
chordDiagram(mat, grid.col = grid.col) 

# now, the image with rotated labels 
chordDiagram(mat, annotationTrack = "grid", preAllocateTracks = 1, grid.col = grid.col) 
circos.trackPlotRegion(track.index = 1, panel.fun = function(x, y) { 
    xlim = get.cell.meta.data("xlim") 
    ylim = get.cell.meta.data("ylim") 
    sector.name = get.cell.meta.data("sector.index") 
    circos.text(mean(xlim), ylim[1] + .1, sector.name, facing = "clockwise", niceFacing = TRUE, adj = c(0, 0.5)) 
    circos.axis(h = "top", labels.cex = 0.5, major.tick.percentage = 0.2, sector.index = sector.name, track.index = 2) 
}, bg.border = NA) 

परिणाम:

enter image description here

+0

यह बहुत अच्छा है। मेरा उदाहरण डेटा को आसन्न मैट्रिक्स के रूप में दिखाता है। यदि मेरा डेटा निकटता सूची के रूप में था, तो क्या मैं बस 'grid.col' चर फिर से काम करूंगा? –

+0

मैंने रंगों की पसंद को ठीक करने के लिए अभी 'grid.col' का उपयोग किया है। टीबीएच, पैकेज का कभी भी इस्तेमाल नहीं किया, लेकिन विग्नेट से कोड पकड़ लिया। – lukeA

+1

@ ब्रायन, क्या आप संस्करण> = 0.3.0 के साथ पैकेज का उपयोग कर रहे हैं? यदि ऐसा है, तो 'chordDiagram() 'के लिए इनपुट चर अब एक आसन्नता सूची हो सकती है और' grid.col' को उसी तरह सेट किया जा सकता है जैसे इनपुट एक मैट्रिक्स है। –

संबंधित मुद्दे