2015-03-07 6 views
6

मैं 2013 के जर्मन चुनावी परिणामों के लिए आर के साथ संसदीय सीट ग्राफ बनाने के लिए निम्नलिखित कोड का उपयोग कर रहा हूं।संसदीय सीट ग्राफ -> रंग और लेबल?

मैं प्रत्येक पार्टी के लिए रंग बदलना चाहता हूं (सीडीयू/सीएसयू -> लाल, एसपीडी -> नीला, लिंक -> पीला और ग्रुइन -> हरा)। जब मैं ऐसा करने की कोशिश करता हूं, तो रंग ग्राफ में पार्टियों के अनुक्रमों को नष्ट करने, यादृच्छिक रूप से दिखाई देते हैं।

मैं केवल सीट ग्राफ दिखाई देने के लिए ग्राफ के काले समोच्च को भी ले जाना चाहता हूं।

VoteGermany2013 <- data.frame(Party=c("CDU/CSU", "SPD", "LINKE","GRUENE"), 
          Result=c(311,193,64,63)) 


seats <- function(N,M, r0=2.5){ 
radii <- seq(r0, 1, len=M) 

counts <- numeric(M) 
pts = do.call(rbind, 
      lapply(1:M, function(i){ 
       counts[i] <<- round(N*radii[i]/sum(radii[i:M])) 
       theta <- seq(0, pi, len = counts[i]) 
       N <<- N - counts[i] 
       data.frame(x=radii[i]*cos(theta), y=radii[i]*sin(theta), r=i, 
         theta=theta) 
      } ) 
) 
    pts = pts[order(-pts$theta,-pts$r),] 
    pts 
} 


election <- function(seats, counts){ 
stopifnot(sum(counts)==nrow(seats)) 
seats$party = rep(1:length(counts),counts) 
seats 
} 

layout = seats(631,16) 
result = election(layout, VoteGermany2013$Result) # no overall majority!!! 
plot(result$x, result$y, col=result$party,pch=19, asp=1) 

My current graph

+1

क्या आप काला समोच्च मतलब है को बताए द्वारा दबाने कर सकते हैं? अक्ष और पाठ? क्या यह काम करता है? 'कुंजी <- सेटनाम (सी ('लाल', 'नीला', 'पीला', 'हरा'), 1: 4); cols <- कुंजी [परिणाम $ पार्टी]; साजिश (परिणाम $ x, परिणाम $ y, col = cols, pch = 19, asp = 1, ann = गलत, axes = FALSE) ' – rawr

+0

@rawr हां, ann = FALSE ने किया, धन्यवाद! :) – Evelyne1991

उत्तर

8

अच्छा उदाहरण। मुझे लगता है कि आप अक्ष को दबा देना चाहते हैं। यह आपके द्वारा निर्दिष्ट रंग वेक्टर में एक सूचकांक के रूप में result$party संख्यात्मक मानों का उपयोग करता है। col वेक्टर (जो इंडेक्स एक्स और वाई तर्कों के बराबर लंबाई में बनाता है) को 'x' और 'y' मानों तक होने की आवश्यकता होती है यदि कोई नियमितता नहीं है जो 'कॉल की लंबाई' के साथ समन्वयित हो। (यदि रंग 'समूह' की लंबाई के एकाधिक के साथ समन्वय में अपने समूह को दोहराते हैं, तो कोई समस्या नहीं है। रीसाइक्लिंग सबकुछ का ख्याल रखता है।) समूह में नियमितता के बिना, 'कोलो-वेक्टर पुनर्नवीनीकरण हो जाता है, और अराजकता आती है।

plot(result$x, result$y, 
    col=c("red", "blue", "yellow","green")[result$party], #numeric index 
    pch=19, asp=1, 
    frame.plot=FALSE, # gets rid of the surrounding rectangle 
    axes="F") # gets rid of the numbers and ticks 

आप xlab 'और' ylab '""

enter image description here

+1

क्या आप ggplot का उपयोग करके परिणाम को फिर से बनाना चाहते हैं? – lawyeR

+1

मुझे नहीं। जब आर ग्राफिक्स की बात आती है तो मैं बेस और जाली लड़का से अधिक हूं। मुझे पता है कि ggplot2 में सर्कुलर प्लॉट की सुविधा है और मुझे अनुमान है कि कोई बॉक्स (पृष्ठभूमि) को दबाने के लिए थीम() का उपयोग करेगा। –

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