2012-06-30 22 views
6

अक्ष अगर मैं एक ग्राफ g बनाने:igraph xlim ylim भूखंड गलत तरीके से

g <- read.table(text=" 

A B W 

1 55 3 
2 55 5 
3 99 6 ",header=TRUE) 

library(igraph) 
g <- graph.data.frame(g) 

और मैट्रिक्स निर्देशांक:

y<-1:5 
x<-c(0.1,0.1,0.2,0.2,0.8) 
l<-data.frame(x,y) 
l<-as.matrix(l) 

मैं कस्टम निर्देशांक और साजिश कुल्हाड़ियों के अनुसार नोड पदों के साथ ग्राफ प्लॉट कर सकते हैं ।

plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1)) 

graph with wrong axes

लेकिन xaxis सीमा ठीक ढंग से काम नहीं करते हैं और मैं yaxis सीमा द्वारा बदल रहे हैं लगता है। मैं xaxis कैसे नियंत्रित कर सकते हैं वे जिस तरह से मैं उदाहरण यह 0 और 1.

अर्थात plot(x,y,xlim=c(0,1),ylim=c(0,6))

के बीच

रखने के लिए चाहते हैं यह एक बग है? यदि यह है और इसे हल नहीं किया जा सकता है तो क्या एक और पैकेज है जिसमें समान कार्यक्षमता होगी?

उत्तर

16

संक्षिप्त उत्तर है, तो आप कॉल के asp तर्क 0 को साजिश के रूप में डिफ़ॉल्ट asp = 1 जो व्यवहार आप देख उत्पादन होता है निर्धारित करने की आवश्यकता है (यानी, नहीं एक बग है, यह एक ऐसी सुविधा है)। स्पष्टीकरण के साथ लंबा जवाब निम्नानुसार है।


आप सही तरीके से देखा, xaxisyaxis के अनुसार बदलता रहता है। विशेष रूप से, x- अक्ष approxamitely ही yaxis के रूप में उच्च और निम्न संख्या के बीच की दूरी है: -3 से 4. 6 - 0 = 6 और 4 - (-3) = 7

  • को

    • yaxis = c(0,6) हैं, x- अक्ष चला जाता है yaxis = c(0,3), एक्स -एक्सिस -1 से 2. 3 - 0 = 2 - (-1) = 3

    इग्राफ अक्षों के बीच निरंतर अनुपात बनाए रखने लगता है।

    आप ?plot.igraph (अंकन समारोह एक igraph वस्तु के साथ कहा जाता है, भी help(package = "igraph") के माध्यम से पाया जा सकता है) कहते हैं, तो आप See Also के अंतर्गत मिल: साजिश रचने मानकों के विस्तृत विवरण के लिए

    igraph.plotting

    और यदि आप इस लिंक पर क्लिक करते हैं (या ?igraph.plotting पर कॉल करें) और उन पैरामीटरों के माध्यम से जाएं जिन्हें आप पाएंगे:

    asp एक अंकीय निरंतर, यह साजिश, पहलू अनुपात के लिए एएसपी पैरामीटर देता है। यदि आप एक पहलू अनुपात नहीं देना चाहते हैं तो यहां आपूर्ति 0।
    इसे tkplot और rglplot द्वारा अनदेखा किया जाता है।

    को 1.

    चूक इसलिए पहलू पैरामीटर igraph में 1 को asp चूक।यदि आप किसी अन्य अनुपात चाहते हैं, यह 0 करने के लिए सेट:

    plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0) 
    

    यह आपके सवाल का जवाब। हालांकि, ध्यान दें कि अंक अब बड़े हैं। आप शायद निम्नलिखित मानकों के साथ चारों ओर खेलने के लिए चाहते हैं (?igraph.plotting पर पाया लेकिन ध्यान दें पैरामीटर के कई vertex. लगाया जा करने के लिए के रूप में मेरे द्वारा किया की जरूरत है कि) होगा:

    • vertex.size डिफ़ॉल्ट 15 है, 5 बेहतर लगता है
    • vertex.label.cex डिफ़ॉल्ट 1 है, 0.8 बेहतर लगता है।

      plot(g,layout=l,rescale=F,axes=TRUE,ylim=c(0,6),xlim=c(0,1), asp = 0, vertex.size = 5, vertex.label.cex = 0.8)

      nicer plot

      :

    निम्नलिखित एक अच्छे साजिश का उत्पादन

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